Skip to content

Instantly share code, notes, and snippets.

@shirokoweb
Created May 7, 2018 17:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shirokoweb/1fea90c4f31e768c8e4a95247e2c9d5b to your computer and use it in GitHub Desktop.
Save shirokoweb/1fea90c4f31e768c8e4a95247e2c9d5b to your computer and use it in GitHub Desktop.
Exclure un plugin WordPress de certaines pages
<?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