Intereting Posts
WP_Query в functions.php переопределяет глобальный объект $ post, даже с wp_reset_query () Как настроить общий контент между основным сайтом и субдоменом? Клонирование метабокса через проблему с вызовом администратора Ajax настраиваемый сортируемый столбец paginate_links () Изменить порядок ссылок Создайте раскрывающийся список с настраиваемыми типами сообщений в качестве опции в admin Просмотр и запрос сообщений с избранным изображением Пользовательский WordPress install – активировать пользовательскую тему Модификация TinyMCE js и WordPress PHP? Нужна альтернативная функция get_posts для пользовательского типа сообщения Существует ли какое-либо управление зависимостью темы? Подключить функцию к боковой панели? Изменить постоянную ссылку на внешний URL из настраиваемого поля Передача информации из functions.php в плагин Удаление старого настраиваемого поля после импорта

Отключить действие плагина / плагина через тему

Я установил плагин Google Analyticator на своем сайте. Я также использую плагин MobilePress, чтобы обслуживать тему, предназначенную для мобильных браузеров без смартфонов. Я настроил Google Analytics для мобильных устройств для использования в этой теме и хотел бы отключить плагин Analyticator, поскольку он включает вызов более крупного файла js.

Кто-нибудь знает, можно ли отключить плагин, используя функции.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'); 

Любая помощь приветствуется.

Solutions Collecting From Web of "Отключить действие плагина / плагина через тему"

Когда WordPress активирует плагин, он вызывает функцию activate_plugin() . Эта функция активирует плагин в песочнице и перенаправляет где-то еще на успех. Он был использован несколькими авторами для программной активации зависимостей плагина.

Есть еще одна функция deactivate_plugin() , которая делает аналогичную вещь в обратном порядке … на самом деле WordPress отключает плагины, когда вы нажимаете «деактивировать» или «отключить».

Чтобы отключить установленный плагин, просто вызовите:

 deactivate_plugins( '/plugin-folder/plugin-name.php' ); 

Или, чтобы деактивировать сразу несколько плагинов:

 deactivate_plugins( array( '/first-plugin/first.php', '/second-plugin/second.php' ) ); 

Есть второй параметр (первый – это строка или массив отключенных плагинов), которая позволяет отключать плагины, не вызывая перехваты деактивации. По умолчанию установлено значение false, и я рекомендую вам оставить его таким образом. Если по какой-то причине вы не хотите отключать деактивацию, вы должны сделать следующее:

 deactivate_plugins( '/plugin-folder/plugin-name.php', true ); 

Это просто отключит плагин, но он не выпустит ничего, что зарегистрировал плагин для деактивации. Поэтому, если плагин удаляет параметры или таблицы db, когда он отключен, вы хотите сделать эту «тихую» деактивацию, чтобы сохранить эту информацию и использовать ее в другом месте.

  • Некоторые документы из руководства A HitchHacker через WordPress

Это благодаря блестящему ответу EAMann выше, и я подумал, что это может быть полезно и для оригинального плаката …

Мне нужно решение, чтобы пользователи отключили мой плагин, если они загрузили премиум-версию (чтобы избежать потенциальных конфликтов). Ранее я обнаружил его состояние с is_plugin_active и показал сообщение об ошибке администратора, чтобы побудить пользователей отключить его. Это намного более плавно …

 function deactivate_plugin_conditional() { if ( is_plugin_active('plugin-folder/plugin-name.php') ) { deactivate_plugins('plugin-folder/plugin-name.php'); } } add_action( 'admin_init', 'deactivate_plugin_conditional' ); 

Примечание. Казалось, что не работает в register_activation_hook, но admin_init работает как шарм.

Вот мое решение, создайте плагин, который может отключить другие плагины:

 /* * Plugin Name: Disable/Configure Plugins * Description: Lets you disable/configure plugins based on environment variables * Author: Chris Sewell */ /** * Disable specified plugins in development environment. * * This is a "Must-Use" plugin. Code here is loaded automatically before regular plugins load. * This is the only place from which regular plugins can be disabled programatically. * * Place this code in a file in WP_CONTENT_DIR/mu-plugins or specify a custom location * to "development" or "production" in each particular server/environment. */ /* Disable specified plugins in development environment */ if (((getenv('environment') == 'production') || (getenv('environment') == 'alpha')) == false) { $plugins = array( 'w3-total-cache/w3-total-cache.php' ); require_once(ABSPATH . 'wp-admin/includes/plugin.php'); deactivate_plugins($plugins); } 

Нажимайте это на производство, включите его, а затем доведите базу данных до вашей локальной машины-разработчика.

Источник