Я установил плагин Google Analyticator на свой сайт. Я также использую плагин MobilePress для отображения темы, разработанной для мобильных браузеров без смартфона. Я настроил Google Analytics для мобильных устройств для использования в этой теме и хотел бы отключить плагин Analyticator, поскольку он включает в себя вызов более крупного файла js.
Кто-нибудь знает, можно ли отключить плагин с помощью functions.php или каким-либо другим способом?
Я считаю, что я нашел код, который добавляет функции на страницу, поэтому, если невозможно отключить весь плагин, можно ли остановить действия для выполнения? Я попытался отключить их напрямую, но не повезло. Вот код из файла плагина:
add_action('wp_head', 'add_google_analytics', 999999);
add_action('init', 'ga_outgoing_links');
Я попытался удалить эти действия с:
remove_action('wp_head','add_google_analytics',9999999);
remove_action('init', 'ga_outgoing_links');
Любая помощь очень ценится.
Ответы:
Когда WordPress активирует плагин, он вызывает
activate_plugin()
функцию. Эта функция активирует плагин в песочнице и перенаправляет в другое место в случае успеха. Несколько авторов использовали его для программной активации зависимостей плагинов.Есть еще одна функция,
deactivate_plugin()
которая выполняет аналогичные действия в обратном порядке: фактически WordPress деактивирует плагины, когда вы нажимаете «деактивировать» или «отключить».Чтобы деактивировать установленный плагин, просто позвоните:
Или, чтобы отключить несколько плагинов одновременно:
Есть второй параметр (первый - это строка или массив отключаемых плагинов), который позволяет отключить подключаемые модули без вызова перехватчиков деактивации. По умолчанию установлено значение false, и я рекомендую оставить его таким. Если по какой-то причине вы не хотите обойти деактивацию, вы должны сделать:
Это просто отключило бы плагин, но не запустило бы ничего, что плагин зарегистрировал для деактивации. Поэтому, если плагин удаляет опции или таблицы БД, когда он деактивирован, вы должны выполнить эту «тихую» деактивацию, чтобы сохранить эту информацию и использовать ее в другом месте.
источник
Это благодаря блестящему ответу Е.А.Манна выше, и я подумал, что это может быть полезно и для оригинального плаката ...
Мне нужно было решение, чтобы пользователи деактивировали мой плагин, если они загрузили премиум-версию (чтобы избежать потенциальных конфликтов). Ранее я обнаружил его состояние с помощью is_plugin_active и показал сообщение об ошибке администратора, чтобы предложить пользователям отключить его. Это НАМНОГО более гладко ...
Примечание: похоже, не работает с register_activation_hook, но admin_init работает как шарм.
источник
Вот мое решение, создайте плагин, который может отключить другие плагины следующим образом:
Переведите это в рабочий режим, включите его, а затем перенесите базу данных на локальный компьютер разработчика.
Источник
источник