Ich habe das Google Analyticator-Plugin auf meiner Website installiert . Ich verwende das MobilePress-Plugin auch , um ein Thema für mobile Browser zu erstellen , die keine Smartphones sind. Ich habe Google Analytics für Handys für die Verwendung in diesem Thema eingerichtet und möchte das Analyticator-Plug-in deaktivieren, da es einen Aufruf einer größeren js-Datei enthält.
Weiß jemand, ob es möglich ist, ein Plugin mit functions.php oder einer anderen Methode zu deaktivieren?
Ich glaube, ich habe den Code gefunden, der die Funktionen zur Seite hinzufügt. Wenn es also nicht möglich ist, das gesamte Plugin zu deaktivieren, können dann die auszuführenden Aktionen abgebrochen werden? Ich habe versucht, sie ohne Glück direkt zu deaktivieren. Hier ist der Code aus der Plugin-Datei:
add_action('wp_head', 'add_google_analytics', 999999);
add_action('init', 'ga_outgoing_links');
Ich habe versucht, diese Aktionen zu entfernen mit:
remove_action('wp_head','add_google_analytics',9999999);
remove_action('init', 'ga_outgoing_links');
Jede Hilfe wird sehr geschätzt.
Antworten:
Wenn WordPress ein Plugin aktiviert, ruft es die
activate_plugin()
Funktion auf. Diese Funktion aktiviert das Plugin in einer Sandbox und leitet es bei Erfolg an eine andere Stelle weiter. Es wurde von einigen Autoren verwendet, um Plugin-Abhängigkeiten programmgesteuert zu aktivieren.Es gibt noch eine andere Funktion,
deactivate_plugin()
die genau das Gegenteil bewirkt: WordPress deaktiviert Plug-Ins, wenn Sie auf "Deaktivieren" oder "Deaktivieren" klicken.Um ein installiertes Plugin zu deaktivieren, rufen Sie einfach auf:
Oder, um mehrere Plugins gleichzeitig zu deaktivieren:
Es gibt einen zweiten Parameter (der erste ist entweder ein String oder ein Array der zu deaktivierenden Plugins), mit dem Sie die Plugins deaktivieren können, ohne Deaktivierungs-Hooks aufzurufen. Standardmäßig ist es auf false gesetzt, und ich empfehle, dass Sie es so belassen. Wenn Sie die Deaktivierung nicht aus irgendeinem Grund umgehen möchten, tun Sie Folgendes:
Dies würde nur das Plugin ausschalten, aber es würde nichts auslösen, wofür das Plugin bei der Deaktivierung registriert ist. Wenn das Plugin also Optionen oder DB-Tabellen entfernt, wenn es deaktiviert ist, möchten Sie diese "stille" Deaktivierung durchführen, um diese Informationen zu erhalten und an anderer Stelle zu verwenden.
quelle
Dies ist der hervorragenden Antwort von EAMann zu verdanken, und ich dachte, es könnte auch für das Originalplakat hilfreich sein ...
Ich brauchte eine Lösung, um sicherzustellen, dass Benutzer mein Plugin deaktiviert haben, wenn sie die Premium-Version hochgeladen haben (um mögliche Konflikte zu vermeiden). Zuvor erkannte ich den Status mit is_plugin_active und zeigte eine Administrator-Fehlermeldung an, um Benutzer zum Ausschalten aufzufordern. Das ist VIEL glatter ...
Hinweis: Scheint nicht mit register_activation_hook zu funktionieren, aber admin_init funktioniert wie ein Zauber.
quelle
Hier ist meine Lösung, ein Plugin zu erstellen, das andere Plugins wie folgt deaktivieren kann:
Übertragen Sie dies auf die Produktion, aktivieren Sie es und bringen Sie die Datenbank auf Ihren lokalen Entwicklercomputer.
Quelle
quelle