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

如何在WooCommerce商店页将分类名称显示于分组商品上方

WooCommerce 商店页面分类标题分组显示解决方案

要实现按分类分组、分类标题显示在对应商品组上方的效果,你需要跟踪当前商品所属分类,仅在每个分类的第一个商品前输出分类标题,替代你之前的代码:

// 全局变量记录上一个商品的分类ID
$previous_cat_id = 0;

function wc_display_category_title_before_product_group() {
    global $previous_cat_id;
    
    // 获取当前商品的分类
    $product_cats = wp_get_post_terms( get_the_ID(), 'product_cat' );
    if ( $product_cats && !is_wp_error( $product_cats ) ) {
        // 取第一个分类(如果商品属于多个分类,可根据需求调整)
        $current_cat = array_shift( $product_cats );
        
        // 仅当前分类和上一个分类不同时,输出分类标题
        if ( $current_cat->term_id !== $previous_cat_id ) {
            ?>
            <h2 class="product_category_title" itemprop="name">
                <span><?php echo esc_html( $current_cat->name ); ?></span>
            </h2>
            <?php
            // 更新上一个分类ID为当前分类ID
            $previous_cat_id = $current_cat->term_id;
        }
    }
}
// 使用woocommerce_before_shop_loop_item钩子,确保标题显示在商品上方
add_action( 'woocommerce_before_shop_loop_item', 'wc_display_category_title_before_product_group', 5 );

代码说明:

  • 改用woocommerce_before_shop_loop_item钩子,让分类标题显示在商品卡片上方
  • 通过全局变量$previous_cat_id记录上一个商品的分类ID,避免重复输出同一分类标题
  • 用esc_html()转义分类名称,提升站点安全性
  • 若商品属于多个分类,代码默认取第一个分类,你可根据需求调整逻辑(比如指定取主分类)

额外提示:

  1. 确保商店页面按分类排序,否则分类标题会混乱(可在WooCommerce设置或页面查询中设置排序规则为“分类”)
  2. 可通过自定义CSS调整.product_category_title的样式,匹配你的主题风格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 17:02:34