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

2023-04-2807:38:29后端程序开发Comments873 views字数 673阅读模式

按照WooCommerce插件的默认逻辑,子类中的产品会自动出现在父类的产品列表中。按照常理,这是正确的显示逻辑,一个产品既然属于子类,肯定也属于父类,就像朝阳区属于北京市,肯定也属于中国。可是在某些项目中,不需要这样的显示。在父级产品列表页面,只显示子分类和父级分类中的产品,WooCommerce的分类设置中没有这样的设置,不过我们可以直接修改WooCommerce产品查询来实现这一功能。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/37639.html

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

直接把下面的代码添加的主题的functions.php中即可实现此功能。不难看出,下面的代码中,主要起作用的就是'include_children' => false,这一行,意思是告诉产品查询,在当前查询中,不要包含子分类中的产品。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/37639.html

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产品列表进行更多的定制,只需要根据需要把修改后的查询参数放到这里即可。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/37639.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/37639.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定