Подтвердить что ты не робот

Wordpress Отключить плагин на определенных страницах/сообщениях

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

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

Любые идеи?

Спасибо заранее!

4b9b3361

Ответ 1

попробуйте "Плагин Организатор" Wordpress плагин Джеффа Sterup. Вы должны активировать "выборочную загрузку плагинов" под его настройками (обязательно следуйте указаниям, указанным для включения)

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

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

Ответ 2

Вот идея.

 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;
 }

Ответ 3

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

Единственное предостережение для ответа 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, чтобы запускать действие только для определенных идентификаторов сообщений, подумал, что это может быть полезно.

Ответ 4

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

Во-вторых, ищите свои крючки действия плагина для ex:

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);

Ответ 5

Вам нужно отредактировать код плагина. WordPress не предоставляет функциональность, которую вы ищете.