2015-05-16 2 views
1

Я пытаюсь удалить страницы стилей woocommerce со всех страниц, кроме страниц выписки/корзины/получения.dequeue (удалить) woocommerce css stylesheets

Код формы справочной страницы woocommerce (http://docs.woothemes.com/document/disable-the-default-stylesheet/) работает для полного удаления таблиц стилей.

add_filter('woocommerce_enqueue_styles', '__return_empty_array'); 

Я пытался использовать этот код, но он не работает:

add_action('wp_enqueue_scripts', 'child_manage_woocommerce_styles', 99); 
function child_manage_woocommerce_styles() { 
remove_action('wp_head', array($GLOBALS['woocommerce'], 'generator')); 
if (function_exists('is_woocommerce')) { 
    if (! is_woocommerce() && ! is_cart() && ! is_checkout()) { 
add_filter('woocommerce_enqueue_styles', '__return_empty_array'); 
}} 
} 

ответ

1

Это происходит потому, что вы проверяете, что страница не все это в один раз. Вы должны отделить if заявления, как:

if (! is_woocommerce()) { 
    add_filter('woocommerce_enqueue_styles', '__return_empty_array'); 
}} 
if (! is_cart()) { 
    add_filter('woocommerce_enqueue_styles', '__return_empty_array'); 
}} 
if (is_checkout()) { 
    add_filter('woocommerce_enqueue_styles', '__return_empty_array'); 
}} 

Это должно исправить вашу проблему. KG

1

& & с ||

if (function_exists('is_woocommerce')) { 
    if (! is_woocommerce() || ! is_cart() || ! is_checkout()) { 
add_filter('woocommerce_enqueue_styles', '__return_empty_array'); 
}} 
0

стили Отменить регистрацию/DEQUEUE является наилучшей практикой

https://codex.wordpress.org/Function_Reference/wp_deregister_style https://codex.wordpress.org/Function_Reference/wp_dequeue_style

Но вы можете использовать этот фильтр тоже, чтобы отфильтровать стили WooCommerce с любым условием.

add_filter('style_loader_src', function($href){ 
if(strpos($href, "name-of-allowed.css") !== false) { 
return $href; 
} 
return false; 
}); 
Смежные вопросы