我试图从结帐/购物车/收据页面以外的所有页面中取出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' );
}}
}
答案 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;
});