WooCommerce:隐藏商店页面上的产品循环

时间:2018-06-12 21:41:53

标签: php wordpress woocommerce

我使用以下代码隐藏Woo商店页面上的产品循环:

add_action( 'pre_get_posts', 'bbloomer_remove_products_from_shop_page' );

function bbloomer_remove_products_from_shop_page( $q ) {

    if ( ! $q->is_main_query() ) return;
    if ( ! $q->is_post_type_archive() ) return;

    if ( ! is_admin() && is_shop() ) {

        $q->set( 'tax_query', array(array(
            'taxonomy' => 'product_cat',
            'field' => 'slug',
            'terms' => array( 'null' ),
            'operator' => 'IN'
        )));

    }

    remove_action( 'pre_get_posts', 'bbloomer_remove_products_from_shop_page' );

}

function wc_no_products_found() {
    if ( is_shop() ) {
echo '<style>p.woocommerce-info{display:none}</style';
}
}

有效。它删除了所有产品和Woo no products found错误消息。

问题如下:

因为上面的代码删除了找不到产品的错误消息。如果有人在我的某个类别中搜索不存在的内容,则生成的搜索结果页面也会为空白。

因此,简单来说,我只想从商店页面中删除找不到产品的错误消息。我删除了所有产品的地方。并且仍然会在(不成功的)搜索结果页面上显示错误消息。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

使用此

更改wc_no_products_found函数
add_action( 'woocommerce_no_products_found', function(){

 if(is_shop()) {
    remove_action( 'woocommerce_no_products_found', 'wc_no_products_found', 10 );
}
}, 9 );

我希望此代码可以帮助您