WooCommerce商品标题上方品牌替换为二级分类需求
解决方案
第一步:移除原有品牌显示代码
删掉你之前添加的aq_display_brand_before_title函数及对应的add_action代码,或者用//注释掉,避免继续输出品牌信息。第二步:添加二级分类显示代码
替换为以下代码,这段代码会在商品标题上方展示商品的二级分类(筛选出父级ID不为0的非一级分类),分类名称会自动链接到对应分类页面:
add_action( 'woocommerce_before_shop_loop_item_title', 'aq_display_subcategory_before_title' ); function aq_display_subcategory_before_title(){ global $product; $taxonomy = 'product_cat'; // WooCommerce商品分类默认标识 $categories = get_the_terms( $product->get_id(), $taxonomy ); if ( $categories && ! is_wp_error( $categories ) ) { // 筛选二级分类(排除父级为0的一级分类) $sub_categories = array_filter( $categories, function($term) { return $term->parent !== 0; }); // 遍历输出符合条件的分类 foreach( $sub_categories as $term ) { if ( is_a($term, 'WP_Term') ) { echo '<a href="' . get_term_link( $term ) . '">' . $term->name . '</a>'; } } } }
代码说明
- 替换了原代码中的品牌分类标识,改用WooCommerce默认的商品分类标识
product_cat - 通过筛选父级ID不为0的分类,精准获取二级及以下层级的分类(若商品有多个二级分类,会全部输出)
- 保留了原代码的链接逻辑,输出样式可直接复用之前品牌的CSS样式
内容的提问来源于stack exchange,提问作者Graham Toomey
相关产品推荐
相关产品推荐

