-
-
Save mehrshaddarzi/b61884a827443646e4bd56d6a41663ba to your computer and use it in GitHub Desktop.
A Must-use plugin to filter active plugins in on a per-page basis.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// returns the path of the request URI without the query string | |
// see http://php.net/manual/en/function.parse-url.php | |
// and http://php.net/manual/en/reserved.variables.server.php | |
// and http://php.net/manual/en/url.constants.php | |
$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; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment