You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WooCommerce商店页面:隐藏指定分类商品但不全站隐藏

解决WooCommerce主商店页隐藏指定分类商品但保留分类页显示的问题

可以通过WooCommerce的pre_get_posts钩子实现这个需求,核心逻辑是仅在主商店页面时排除指定分类的商品,分类单独页面不受影响。具体代码如下:

add_action( 'pre_get_posts', 'exclude_category_from_shop_page' );
function exclude_category_from_shop_page( $query ) {
    // 仅针对前台的产品查询生效
    if ( ! is_admin() && $query->is_main_query() && is_shop() ) {
        // 替换这里的分类ID为你需要隐藏的分类ID,多个用逗号分隔
        $exclude_categories = array( 12, 34 );
        $query->set( 'tax_query', array(
            array(
                'taxonomy' => 'product_cat',
                'field'    => 'term_id',
                'terms'    => $exclude_categories,
                'operator' => 'NOT IN',
                // 如果需要同时排除子分类,取消下面一行的注释
                // 'include_children' => true,
            )
        ) );
    }
}

代码说明:

  • is_shop():判断当前页面是否是WooCommerce的主商店页面,只有这里才会执行排除逻辑
  • tax_query:通过产品分类的分类ID,使用NOT IN操作符排除指定分类下的商品
  • 如果需要排除分类的子分类商品,只需取消include_children的注释即可

使用方法:

  1. 将上述代码添加到你的主题functions.php文件中,或者使用自定义代码插件(如Code Snippets)
  2. 替换代码中的12, 34为你实际需要隐藏的分类ID(可在WooCommerce分类编辑页面的URL中找到ID)

这个方案只会在主商店页隐藏指定分类的商品,而这些分类的单独页面仍会正常显示所有商品,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Rick White

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 12:54:50