2016-06-20 3 views
0

Я хочу, чтобы wp_deregister все стили и скрипты из определенного плагина. возможноОтменить все стили и скрипты из определенного плагина Wordpress

Например

$plugin = getAllStyles('PLUGIN-NAME');  
foreach ($plugin as $value) { 
    wp_deregister_style($value); 
} 

$plugin = getAllScripts('PLUGIN-NAME');  
foreach ($plugin as $value) { 
    wp_deregister_script($value); 
} 

ли это?

ответ

1

Да, это возможно с MU-PLUGINs, который заглядывает в запрос URL и выборочно отключает плагины. Это возможно, потому что плагины MU загружаются перед регулярными плагинами.

1) Создать новый Mu-плагин в /wp-content/mu-plugins/Removeplugin.php

2) Добавить код

/* 
    Plugin Name: plugins remover 
    Plugin URI: 
    Description: Removes plugin 
    Author: Author name 
    Version: 1.0 
    Author URI: 
*/ 

3) Теперь добавим действие крюк option_active_plugins

add_filter('option_active_plugins', 'disable_plugin_callback_fun'); 
function disable_plugin_callback_fun($plugins){ 
    $key = array_search('plugin_directory_name/plugin_filename.php' , $plugins); 
    if (false !== $key) unset($plugins[$key]); 
} 

Пример, если вы удалите контакт форма 7 плагин css и js

add_filter('option_active_plugins', 'disable_plugin_callback_fun'); 
    function disable_plugin_callback_fun($plugins){ 
     $key = array_search( 'contact-form-7/wp-contact-form-7.php', $plugins); 
    if (false !== $key) { unset($plugins[$key]);} 

} 

ПРИМЕЧАНИЕ: Этот крючок действия отключает плагин для сайта. Поэтому я предлагаю загрузить плагин с выбранной страницы, например, ниже. Проверьте текущую страницу.

$current_page = add_query_arg(array()); 
add_filter('option_active_plugins', 'disable_plugin_callback_fun'); 
     function disable_plugin_callback_fun($plugins){ 
     $current_page = add_query_arg(array()); 
     if($current_page!='contact'){//contact us page url where to load plugin only 
     $key = array_search( 'contact-form-7/wp-contact-form-7.php', $plugins); 
     if (false !== $key) { unset($plugins[$key]);} 
     } 
    } 

Для получения дополнительной информации посетите эту https://wordpress.stackexchange.com/questions/114345/load-plugin-selectively-for-pages-or-posts-etc

EDIT

Если вам необходимо удалить только весь стиль и сценарий из плагина. нужно найти все css и jquery и поместить их один за другим в следующую функцию.

Нет другого пути, чтобы удалить весь стиль и сценарий из плагина

Примечания: Это только работе, когда плагин используется для добавления стиля или JS использованияКонтактная wp_enqueue_style() и wp_enqueue_script() другого мудрого этот код не работает

add_action('wp_print_scripts', 'disable_pluginsjs_selectively', 100); 
function disable_pluginsjs_selectively() { 
    wp_deregister_script(Name of the enqueued jQuery); 
    wp_dequeue_style('Name of the enqueued stylesheet'); 
} 
+0

Но код полностью отключит плагин (на специальных страницах). Я только хочу удалить все стили и скрипты из плагина, а не сам плагин. – Peter

+0

@Peter проверить мой ответ –