Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save markjaquith/1044546 to your computer and use it in GitHub Desktop.
Save markjaquith/1044546 to your computer and use it in GitHub Desktop.
Disables specified WordPress plugins when doing local development
Plugin Name: Disable plugins when doing local dev
Description: If the WP_LOCAL_DEV constant is true, disables plugins that you specify
Version: 0.1
License: GPL version 2 or any later version
Author: Mark Jaquith
Author URI:
class CWS_Disable_Plugins_When_Local_Dev {
static $instance;
private $disabled = array();
* Sets up the options filter, and optionally handles an array of plugins to disable
* @param array $disables Optional array of plugin filenames to disable
public function __construct( Array $disables = NULL) {
// Handle what was passed in
if ( is_array( $disables ) ) {
foreach ( $disables as $disable )
$this->disable( $disable );
// Add the filter
add_filter( 'option_active_plugins', array( $this, 'do_disabling' ) );
// Allow other plugins to access this instance
self::$instance = $this;
* Adds a filename to the list of plugins to disable
public function disable( $file ) {
$this->disabled[] = $file;
* Hooks in to the option_active_plugins filter and does the disabling
* @param array $plugins WP-provided list of plugin filenames
* @return array The filtered array of plugin filenames
public function do_disabling( $plugins ) {
if ( count( $this->disabled ) ) {
foreach ( (array) $this->disabled as $plugin ) {
$key = array_search( $plugin, $plugins );
if ( false !== $key )
unset( $plugins[$key] );
return $plugins;
/* Begin customization */
if ( defined( 'WP_LOCAL_DEV' ) && WP_LOCAL_DEV ) {
new CWS_Disable_Plugins_When_Local_Dev( array( 'vaultpress.php' ) );
For programmatic disabling, you can initialize the object (e.g. as $_localdev) then do:
$_localdev->disable( 'vaultpress.php' );
Copy link

pbiron commented Jun 1, 2018

Thanx for this!

The "Get it here" link in your blog post mentioning this plugin has an incorrect URL to this gist...probably because github changed the structure of gist URLs since you wrote that post. You should update that link.

Copy link

pbiron commented Jun 24, 2018

See my fork of Rarst's fork of this, enable-disable-plugins-when-doing-local-dev.php that adds the capability to enable as well as disable plugins locally.

Copy link

Hi Jacques, thanks for this. I also updated it for the opposite (to activate be media from production on a dev).

Perhaps you should change the link in your blog post "WordPress local dev tips: DB & plugins" to this gist too. The link in that post is now broken and probably should point to this gist.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment