Na swojej stronie zainstalowałem wtyczkę Google Analyticator . Korzystam również z wtyczki MobilePress do obsługi motywu przeznaczonego dla przeglądarek mobilnych innych niż smartfony. Skonfigurowałem Google Analytics dla urządzeń mobilnych do użytku w tym temacie i chciałbym wyłączyć wtyczkę Analyticator, ponieważ zawiera ona wywołanie większego pliku js.
Czy ktoś wie, czy można wyłączyć wtyczkę za pomocą functions.php lub innej metody?
Wydaje mi się, że zlokalizowałem kod, który dodaje funkcje do strony, więc jeśli nie można wyłączyć całej wtyczki, czy można zatrzymać wykonywanie działań? Próbowałem je wyłączyć bezpośrednio bez powodzenia. Oto kod z pliku wtyczki:
add_action('wp_head', 'add_google_analytics', 999999);
add_action('init', 'ga_outgoing_links');
Próbowałem usunąć te działania za pomocą:
remove_action('wp_head','add_google_analytics',9999999);
remove_action('init', 'ga_outgoing_links');
Każda pomoc jest mile widziana.
Odpowiedzi:
Kiedy WordPress aktywuje wtyczkę, wywołuje
activate_plugin()
funkcję. Ta funkcja aktywuje wtyczkę w piaskownicy i przekierowuje gdzie indziej po sukcesie. Jest używany przez kilku autorów do programowego aktywowania zależności wtyczek.Istnieje inna funkcja,
deactivate_plugin()
która działa podobnie w odwrotnym kierunku ... tak naprawdę WordPress dezaktywuje wtyczki po kliknięciu „dezaktywuj” lub „wyłącz”.Aby dezaktywować zainstalowaną wtyczkę, wystarczy zadzwonić:
Lub, aby dezaktywować wiele wtyczek jednocześnie:
Istnieje drugi parametr (pierwszy to ciąg lub tablica wtyczek do wyłączenia), który pozwala na wyłączenie wtyczek bez wywoływania haków dezaktywacji. Domyślnie jest ustawiony na false, i zalecamy pozostawienie go w ten sposób. Chyba że z jakiegoś powodu chcesz pominąć dezaktywację, wykonaj następujące czynności:
To po prostu wyłączyłoby wtyczkę, ale nie uruchomiłoby niczego, co wtyczka zarejestrowała w celu dezaktywacji. Jeśli więc wtyczka usuwa opcje lub tabele db, gdy jest dezaktywowana, należy wykonać tę „cichą” dezaktywację, aby zachować te informacje i wykorzystać je gdzie indziej.
źródło
Dzieje się tak dzięki doskonałej odpowiedzi EAManna powyżej i pomyślałem, że może być również pomocny dla oryginalnego plakatu ...
Potrzebowałem rozwiązania, aby upewnić się, że użytkownicy dezaktywują moją wtyczkę, jeśli przesłali wersję premium (aby uniknąć potencjalnych konfliktów). Wcześniej wykryłem jego stan za pomocą is_plugin_active i pokazałem komunikat o błędzie administratora, aby zachęcić użytkowników do wyłączenia. To DUŻO gładsze ...
Uwaga: Wydaje się, że nie działa na register_activation_hook, ale admin_init działa jak urok.
źródło
Oto moje rozwiązanie, stwórz wtyczkę, która może wyłączyć inne wtyczki:
Przekaż to do produkcji, włącz, a następnie przenieś bazę danych na lokalną maszynę programistyczną.
Źródło
źródło