Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
A Must-use plugin to filter active plugins in on a per-page basis.
// returns the path of the request URI without the query string
// see
// and
// and
$request_uri = parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH );
$is_admin = strpos( $request_uri, '/wp-admin/' );
// add filter in front pages only
if( false === $is_admin ){
add_filter( 'option_active_plugins', 'kinsta_option_active_plugins' );
* Filters active plugins
* @param array $plugins An array of active plugins.
function kinsta_option_active_plugins( $plugins ){
global $request_uri;
$is_contact_page = strpos( $request_uri, '/contact/' );
$unnecessary_plugins = array();
// conditions
// if this is not contact page
// deactivate plugins
if( false === $is_contact_page ){
$unnecessary_plugins[] = 'contact-form-7/wp-contact-form-7.php';
$unnecessary_plugins[] = 'custom-post-type-ui/custom-post-type-ui.php';
$unnecessary_plugins[] = 'query-monitor/query-monitor.php';
foreach ( $unnecessary_plugins as $plugin ) {
$k = array_search( $plugin, $plugins );
if( false !== $k ){
unset( $plugins[$k] );
return $plugins;

it did not work with me (looks like another caching plugin is interfering, I have w3t, varnish)
also, it removes the word "contact" if it is in the main menu and when typing the url contact it redirects to main page


carlodaniele commented Jun 2, 2017

Consider that this plugin is just an example supporting a tutorial. It's not meant to be used in production. If needed, the developer should carefully test the plugin on his own installation before putting it at work in production. The plugin has been successfully tested on several installations, but it could not be tested under every conditions.

This one is for plugins. is for css/js. If you for need css/js you can also use gonzales.
@carlodaniele do you know an alternative plugin like yours? Thank you!

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