J'ai installé le plugin Google Analyticator sur mon site. J'utilise également le plug-in MobilePress pour proposer un thème conçu pour les navigateurs mobiles autres que les smartphones. J'ai configuré Google Analytics pour mobile pour l'utiliser dans ce thème et je souhaite désactiver le plug-in Analyticator car il inclut un appel à un fichier js plus volumineux.
Est-ce que quelqu'un sait s'il est possible de désactiver un plugin en utilisant functions.php ou une autre méthode?
Je crois avoir localisé le code qui ajoute les fonctions à la page, donc s'il n'est pas possible de désactiver l'intégralité du plugin, est-il possible d'arrêter les actions pour l'exécution? J'ai essayé de les désactiver directement sans succès. Voici le code du fichier du plugin:
add_action('wp_head', 'add_google_analytics', 999999);
add_action('init', 'ga_outgoing_links');
J'ai essayé de supprimer ces actions avec:
remove_action('wp_head','add_google_analytics',9999999);
remove_action('init', 'ga_outgoing_links');
Toute aide est grandement appréciée.
Réponses:
Lorsque WordPress active un plugin, il appelle la
activate_plugin()
fonction. Cette fonction active le plugin dans un bac à sable et redirige ailleurs en cas de succès. Il a été utilisé par quelques auteurs pour activer par programme les dépendances des plugins.Il y a une autre fonction,
deactivate_plugin()
qui fait la même chose à l'envers ... c'est en fait la façon dont WordPress désactive les plug-ins lorsque vous cliquez sur "désactiver" ou "désactiver".Pour désactiver un plugin installé, il suffit d'appeler:
Ou, pour désactiver plusieurs plugins à la fois:
Il y a un deuxième paramètre (le premier est soit une chaîne ou un tableau des plugins à désactiver) qui vous permet de désactiver les plugins sans appeler de hooks de désactivation. Par défaut, il est défini sur false et je vous recommande de le laisser de cette façon. Sauf si pour une raison quelconque vous souhaitez contourner la désactivation, vous feriez alors:
Cela désactiverait simplement le plugin, mais cela ne déclencherait rien que le plugin aurait enregistré lors de la désactivation. Donc, si le plugin supprime les options ou les tables de base de données lorsqu'il est désactivé, vous voudriez faire cette désactivation "silencieuse" pour conserver ces informations et les utiliser ailleurs.
la source
C'est grâce à la brillante réponse d'EAMann ci-dessus, et j'ai pensé que cela pourrait aussi être utile pour l'affiche originale ...
J'avais besoin d'une solution pour m'assurer que les utilisateurs désactivaient mon plugin s'ils téléchargeaient la version premium (pour éviter les conflits potentiels). Auparavant, j'ai détecté son état avec is_plugin_active et affiché un message d'erreur administrateur pour inviter les utilisateurs à le désactiver. C'est BEAUCOUP plus fluide ...
Remarque: ne semble pas fonctionner sur register_activation_hook, mais admin_init fonctionne comme un charme.
la source
Voici ma solution, créer un plugin qui peut désactiver d'autres plugins comme ceci:
Poussez-le en production, activez-le, puis descendez la base de données sur votre machine de développement locale.
La source
la source