如何从商店和搜索页面WooCommerce中排除分类?

时间:2020-10-20 作者:Danish Mohammed

在我的wooCommerce商店里,我有两种分类法

1. Product Category
2. Services Category

Shop 页面显示了这两个类别的所有产品。我想从商店中排除产品;中的搜索结果页Services Category.

这辆车是通过pre\\u get\\u posts实现的吗?但我认为它不会在wooCommerce商店页面上运行。

让我知道做这件事的最佳方法是什么。对此的任何挂钩或操作。

非常感谢。任何帮助都将不胜感激。

1 个回复
SO网友:Ghighi Eftimie

这可能有助于您了解店铺页面列表:

https://docs.woocommerce.com/document/exclude-a-category-from-the-shop-page/

对于搜索页面,以下是一个可能有帮助的片段:

function exclude_services_category_products_from_search( $query ) {

   if ( is_search() && !is_admin() ) {

        $array_with_service_category_id = [];
        $tax_query = $query->get( \'tax_query\' ) ?: [];

        $tax_query[] = [
            \'taxonomy\' => \'product_cat\',
            \'terms\' => $array_with_service_category_id,
            \'field\' => \'term_id\',
            \'operator\' => \'NOT IN\'
        ];
    
        $query->set( \'tax_query\', $tax_query );
    
    }
    return $query;
}
add_filter( \'pre_get_posts\', \'exclude_services_category_products_from_search\' );
只需添加Service Category $array\\u with\\u service\\u category\\u id数组中的id。

相关推荐

OOP development and hooks

我目前正在为Wordpress编写我的第一个OOP插件。为了帮助我找到一点结构,a boiler plate 这为我奠定了基础。在里面Main.php 有一种方法可以为管理员加载JS和CSS资产:/** * Register all of the hooks related to the admin area functionality * of the plugin. * * @since 0.1.0 * @access private