隐藏 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产品列表进行更多的定制。我们只需要根据需要在这里设置修改后的查询参数即可。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。