Look up Mark Jaquith for more info. [php]<?php /* 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: http://coveredwebservices.com/ */ 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 to both single site and multisite plugin lists. add_filter( 'option_active_plugins', array( $this, 'do_disabling' ) ); add_filter( 'site_option_active_sitewide_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 and site_option_active_sitewide_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 ) { if( current_filter() == 'option_active_plugins' ) $key = array_search( $plugin, $plugins ); else $key = !empty( $plugins[$plugin] ) ? $plugin : false; if( false !== $key ) unset( $plugins[$key] ); } } return $plugins; } } /* Begin customization */ if( defined( 'WP_LOCAL_DEV' ) && WP_LOCAL_DEV ) { $_pluginsToAutoDisable = array( 'w3-total-cache/w3-total-cache.php', 'wordpress-seo/wp-seo.php', 'google-analytics-for-wordpress/googleanalytics.php', ); new CWS_Disable_Plugins_When_Local_Dev( $_pluginsToAutoDisable ); }[/php]Revisions
- December 18, 2012 @ 13:50:11 [Current Revision] by PeterLugg
- December 18, 2012 @ 13:55:14 [Autosave] by PeterLugg
- December 18, 2012 @ 13:49:06 by PeterLugg
Revision Differences
December 18, 2012 @ 13:49:06 Current Revision Content Added: <pre>Look up Mark Jaquith for more info. Added: [php]<?php Added: /* Added: Plugin Name: Disable plugins when doing local dev Added: Description: If the WP_LOCAL_DEV constant is true, disables plugins that you specify Added: Version: 0.1 Added: License: GPL version 2 or any later version Added: Author: Mark Jaquith Added: Author URI: http://coveredwebservices.com/ Added: */ Added: class CWS_Disable_Plugins_ When_Local_Dev { Added: static $instance; Added: private $disabled = array( ); Added: /** Added: * Sets up the options filter, and optionally handles an array of plugins to disable Added: * @param array $disables Optional array of plugin filenames to disable Added: */ Added: public function __construct( Array $disables = NULL ) { Added: // Handle what was passed in Added: if( is_array( $disables ) ) { Added: foreach( $disables as $disable ) Added: $this->disable( $disable ); Added: } Added: // Add the filter to both single site and multisite plugin lists. Added: add_filter( 'option_active_plugins', array( $this, 'do_disabling' ) ); Added: add_filter( 'site_option_ active_sitewide_plugins', array( $this, 'do_disabling' ) ); Added: // Allow other plugins to access this instance Added: self::$instance = $this; Added: } Added: /** Added: * Adds a filename to the list of plugins to disable Added: */ Added: public function disable( $file ) { Added: $this->disabled[] = $file; Added: } Added: /** Added: * Hooks in to the option_active_plugins and site_option_active_ sitewide_plugins Added: * filter and does the disabling Added: * @param array $plugins WP-provided list of plugin filenames Added: * @return array The filtered array of plugin filenames Added: */ Added: public function do_disabling( $plugins ) { Added: if( count( $this->disabled ) ) { Added: foreach( (array)$this- >disabled as $plugin ) { Added: if( current_filter() == 'option_active_plugins' ) Added: $key = array_search( $plugin, $plugins ); Added: else Added: $key = !empty( $plugins[$plugin] ) ? $plugin : false; Added: if( false !== $key ) Added: unset( $plugins[$key] ); Added: } Added: } Added: return $plugins; Added: } Deleted: Added: } Added: /* Begin customization */ Added: if( defined( 'WP_LOCAL_DEV' ) && WP_LOCAL_DEV ) { Added: $_pluginsToAutoDisable = array( Added: 'w3-total-cache/ w3-total-cache.php', Added: 'wordpress-seo/ wp-seo.php', Added: 'google-analytics- for-wordpress/ googleanalytics.php', Added: ); Added: new CWS_Disable_Plugins_ When_Local_Dev( $_pluginsToAutoDisable ); Added: }[/php] Note: Spaces may be added to comparison text to allow better line wrapping.
Revision 331 is a pre-publication revision. (Viewing current revision instead.)
Leave a Reply
You must be logged in to post a comment.
No comments yet.