WordPress教程

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

阿里云

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

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

也想出现在这里?联系我们
创客主机
  1. add_filter('pre_get_posts', function ($wp_query)
  2. {
  3.     if (isset ($wp_query->query_vars[ 'product_cat' ]) && $wp_query->is_main_query()) {
  4.         $wp_query->set('tax_query', [
  5.                 [
  6.                     'taxonomy'         => 'product_cat',
  7.                     'field'            => 'slug',
  8.                     'terms'            => $wp_query->query_vars[ 'product_cat' ],
  9.                     'include_children' => false,
  10.                 ],
  11.             ]
  12.         );
  13.     }
  14. });

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

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

已有 152 人购买
查看演示升级 VIP立刻购买

收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!