WooCommerce:移除店铺页面品牌链接,仅保留产品页面链接
解决方案:移除WooCommerce店铺页面的品牌链接,保留产品页面链接
你的核心需求是区分页面类型输出不同格式的品牌信息——单产品页面保留品牌链接,店铺循环页面(包括Shop首页、产品分类/标签页)只显示纯文本品牌名。只需要在原有函数里添加页面判断逻辑即可实现:
修改后的完整代码
function product_brand() { $terms = wp_get_post_terms(get_the_ID(), 'product_brand'); if (!is_wp_error($terms) && !empty($terms)) { $term = $terms[0]; $class = esc_attr( $term->slug ); $url = esc_url( get_term_link( $term ) ); $name = esc_html( $term->name ); // 判断当前是否为单产品页面 if (is_singular('product')) { // 产品页面输出带链接的品牌 echo "<div class=\"product_brand $class\"><a href=\"$url\">$name</a></div>"; } else { // 店铺循环页面输出纯文本品牌 echo "<div class=\"product_brand $class\">$name</div>"; } } } add_action( 'woocommerce_shop_loop_item_title', 'product_brand', 10); add_action( 'woocommerce_single_product_summary', 'product_brand', 5);
关键修改说明
- 用
is_singular('product')精准判断当前是否为单产品详情页面,这个函数能匹配所有产品单独页面,兼容性比is_product()更好(覆盖部分自定义产品类型场景) - 分分支输出:单页保留原有的带链接结构,店铺循环页直接输出品牌名称文本,移除
<a>标签 - 原有钩子和优先级保持不变,确保品牌依然显示在产品标题上方的指定位置
验证效果
- 访问店铺首页、产品分类/标签页:品牌以纯文本形式显示在标题上方
- 进入任意产品详情页:品牌名称会带有指向对应品牌归档页的链接
内容的提问来源于stack exchange,提问作者LUCKY ONE
相关产品推荐
相关产品推荐

