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

移除WooCommerce店铺页面的商品分类显示

搞定WooCommerce Shop页面的商品分类展示问题

嘿,我来帮你解决这个Shop页面不该显示商品分类的问题!你的需求是让Shop页面只展示商品,去掉顶部的分类列表对吧?先说说你之前代码的问题,再给你两个更靠谱的方案:

方案1:用PHP彻底移除Shop页面的分类列表

你之前的代码是通过过滤分类项来隐藏指定分类,但其实WooCommerce有现成的钩子可以直接干掉整个分类列表模块,比逐个过滤高效多了。把你之前的代码换成这段:

add_action( 'woocommerce_before_shop_loop', 'remove_shop_page_product_categories', 1 );
function remove_shop_page_product_categories() {
    // 只在Shop页面生效
    if ( is_shop() ) {
        // 移除默认输出分类列表的动作
        remove_action( 'woocommerce_before_shop_loop', 'woocommerce_product_subcategories', 10 );
    }
}

原理很简单:WooCommerce默认会在Shop页面商品列表前,用woocommerce_product_subcategories函数输出分类列表。我们提前一步把这个输出动作移除,分类列表就不会显示了,而且完全不影响商品分类页面的正常分类展示(毕竟分类页面本来就该显示分类嘛)。

方案2:用CSS快速隐藏(适合不想改代码的情况)

如果你不想碰PHP代码,直接用CSS也能搞定,只需要给Shop页面的分类列表加个隐藏样式就行。把这段代码加到你主题的自定义CSS里(后台找「外观→自定义→额外CSS」):

/* 仅隐藏Shop页面的商品分类列表 */
body.post-type-archive-product .woocommerce-product-subcategories {
    display: none !important;
}

这个CSS只会作用于Shop页面(post-type-archive-product是Shop页面专属的body类),商品分类页面的分类展示完全不受影响,非常安全。

为啥你之前的代码没达到预期?

你之前的代码是选择性隐藏几个指定slug的分类,而且只在Shop页面生效——这其实逻辑是对的,但它不是彻底移除整个分类列表模块。另外你说“无法隐藏商品分类页面的分类”,其实这是正常的,因为商品分类页面本来就需要展示分类内容,如果你真的要隐藏分类页面的分类,那得再加个条件,但根据你的需求,应该只需要处理Shop页面就行啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:36:05