Wordpress отключить плагин на определенных страницах / сообщениях - PullRequest
24 голосов
/ 21 июля 2011

Кто-нибудь знает действительно эффективный способ отключения плагина (который активен) на определенной странице? Есть некоторые плагины, которые на самом деле не нужны на некоторых страницах веб-сайта, и они содержат много файлов CSS и JavaScript, которые замедляют скорость загрузки сайта и иногда могут конфликтовать с другими файлами.

Я знаю, что могу связываться с кодом плагина и т. Д., Но это не очень эффективно.

Есть идеи?

Заранее спасибо!

Ответы [ 5 ]

37 голосов
/ 04 октября 2012

попробуйте плагин Wordpress Organizer от Джеффа Стерупа. Вы должны включить «Выборочную загрузку плагина» в его настройках (обязательно следуйте их указаниям, приведенным для его включения)

Затем в вашем редакторе постов / страниц под окном создания есть поле с галочками, чтобы отключить какой-либо конкретный плагин для этой страницы

мне потребовалось, вероятно, 20+ поисков в репозитории плагинов Google и Wordpress, чтобы наконец найти простое решение. Надеюсь, это работает и для вас!

17 голосов
/ 25 ноября 2013

Вот идея .

 add_filter( 'option_active_plugins', 'lg_disable_cart66_plugin' );

 function lg_disable_cart66_plugin($plugins){

      if(strpos($_SERVER['REQUEST_URI'], '/store/') === FALSE AND strpos($_SERVER['REQUEST_URI'], '/wp-admin/') === FALSE) {
         $key = array_search( 'cart66/cart66.php' , $plugins );
         if ( false !== $key ) unset( $plugins[$key] );
      }

     return $plugins;
 }
7 голосов
/ 23 мая 2013

Я знаю, что он старый, но этот поток был именно тем, что мне было нужно.

Единственное предостережение для ответа numediaweb - то, что для действия удаления требуется тот же приоритет, что и для действия добавления

Хукив плагине

add_action('wp_print_styles', 'easy_fancybox_enqueue_styles', 999);
add_action('wp_enqueue_scripts', 'easy_fancybox_enqueue_scripts', 999);
add_action('wp_head', 'easy_fancybox', 999);

Код для удаления крючков

function remove_easy_fancybox() {

     global $post;
     $ids = array(12,34,55);
     if(in_array($post->ID,$ids)):
          remove_action('wp_print_styles', 'easy_fancybox_enqueue_styles', 999);
          remove_action('wp_enqueue_scripts', 'easy_fancybox_enqueue_scripts',999);
          remove_action('wp_head', 'easy_fancybox', 999);

          wp_dequeue_script( 'jquery.fancybox' );
          wp_dequeue_script( 'jquery.easing' );
          wp_dequeue_script( 'jquery.mousewheel' );
          wp_dequeue_script( 'jquery.metadata' );
     endif;
}

add_action('wp_head', 'remove_easy_fancybox', 1);

С http://codex.wordpress.org/Function_Reference/remove_action

Важное замечание: Чтобы удалить хук, аргументы $ function_to_remove и $ priority должны совпадать при добавлении хука.Это касается как фильтров, так и действий.При сбое удаления предупреждения не выдаются.

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

5 голосов
/ 08 августа 2011

Во-первых, проверьте, если плагин, который вы хотите удалить, не имеет меню параметров, в котором вы устанавливаете страницы для исключения.

Во-вторых, ищите хуки действий вашего плагина, например:

add_action('wp_head', 'easy_fancybox', 999);

Это пример простого плагина fancybox, который подключается к заголовку WordPress.Чтобы удалить его, я поместил эту функцию в ваш functions.php и до того, как будет вызван любой экземпляр wp_head();:

function remove_easy_fancybox() {

     remove_action('wp_head', 'easy_fancybox_enqueue_styles');
     remove_action('wp_head', 'easy_fancybox_enqueue_scripts');
     remove_action('wp_head', 'easy_fancybox');

     wp_dequeue_script( 'jquery.fancybox' );
     wp_dequeue_script( 'jquery.easing' );
     wp_dequeue_script( 'jquery.mousewheel' );
     wp_dequeue_script( 'jquery.metadata' );
}

add_action('wp_head', 'remove_easy_fancybox', 1);
1 голос
/ 24 июля 2018

теперь вы можете использовать бесплатный плагин Freesoul Deactivate Plugins для деактивации определенных плагинов на определенных страницах, постах, пользовательских постах и ​​архивах, страница настроек действительно проста

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...