dequeue(删除)woocommerce css样式表

时间:2015-05-16 17:50:27

标签: php wordpress woocommerce

我试图从结帐/购物车/收据页面以外的所有页面中取出woocommerce样式表。

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

3 个答案:

答案 0 :(得分: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' );
}}

那应该解决你的问题。

答案 1 :(得分:1)

改变&&与||

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

答案 2 :(得分:0)

取消注册/出列样式是最佳做法

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