Created
May 7, 2018 17:59
-
-
Save shirokoweb/1fea90c4f31e768c8e4a95247e2c9d5b to your computer and use it in GitHub Desktop.
Exclure un plugin WordPress de certaines pages
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 | |
// parse_url renvoie le chemin d'accès de l'URL demandée | |
$request_uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); | |
// strpos trouve la position de la première occurrence de'/wp-admin/' | |
// et retourne false si la chaîne n'est pas trouvée. | |
// La variable $is_admin stocke la valeur retournée. | |
$is_admin = strpos($request_uri, '/wp-admin/'); | |
// si l'URL demandée ne contient pas'/wp-admin/', alors nous ajoutons le filtre option_active_plugins. | |
if (false === $is_admin) { | |
add_filter('option_active_plugins', 'webplus_option_active_plugins'); | |
} | |
// Tout d'abord, nous passons à la fonction un tableau de plugins actifs. | |
function webplus_option_active_plugins($plugins) | |
{ | |
global $request_uri; | |
// La fonction vérifie si le chemin URL demandé contient la chaîne de caractères'/contact/'. | |
// Si ce n'est pas le cas, strpos renvoie false, et nous pouvons vérifier une nouvelle condition. | |
$is_contact_page = strpos($request_uri, '/contact/'); | |
$unnecessary_plugins = array(); | |
//Si l'URL demandée actuelle pointe vers une page autre que la page de contact, | |
// nous ajoutons le plugin contact form 7 à un tableau de plugins inutiles. | |
if (false === $is_contact_page) { | |
$unnecessary_plugins[] = 'contact-form-7/wp-contact-form-7.php'; | |
} | |
// Le cycle foreach itère sur les éléments du tableau $unnecessary_plugins. | |
// Si le plugin courant est un plugin actif, alors la fonction unset le supprime du tableau $plugins. | |
foreach ($unnecessary_plugins as $plugin) { | |
$k = array_search($plugin, $plugins); | |
if (false !== $k) { | |
unset($plugins[$k]); | |
} | |
} | |
// La fonction return le tableau $plugins mis à jour. | |
return $plugins; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment