在WooCommerce父类产品列类表中隐藏子类产品

文 / @WordPress主题

自我介绍

您好,我是一名专业的网站开发人员,擅长于各种网站开发和优化。今天我想向大家介绍一下如何在WooCommerce中实现在父类产品列表中隐藏子类产品的功能。

修改主查询实现在父类产品列表中隐藏子类产品的功能

按照WooCommerce插件的默认逻辑,子类中的产品会自动出现在父类的产品列表中。对于一些特殊项目来说,这种显示逻辑并不是很合适。在父级产品列表页面,只显示子分类和父级分类中的产品,WooCommerce的分类设置中没有这样的设置,但是我们可以通过修改WooCommerce产品查询来实现这一功能。

直接将以下代码添加到主题的functions.php中即可实现此功能。可以看到,下面的代码中,主要起作用的就是'include_children'=>false,这一行,意思是告诉产品查询,在当前查询中,不要包含子分类中的产品。


add_filter('pre_get_posts',function($wp_query)
{
if(isset($wp_query->query_vars['product_cat'])&&$wp_query->is_main_query()){
$wp_query->set('tax_query',[
[
'taxonomy'=>'product_cat',
'field'=>'slug',
'terms'=>$wp_query->query_vars['product_cat'],
'include_children'=>false,
],
]
);
}
});

基于以上代码中的原理,我们可以对WooCommerce产品列表进行更多的定制,只需要根据需要把修改后的查询参数放到这里即可。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。