
通过 woocommerce_attribute_label 过滤钩子,可轻松将当前商品名称动态添加至所有属性标签(如“品牌”“型号”)之前,实现类似“Car 1 品牌:Honda”的显示效果。
通过 `woocommerce_attribute_label` 过滤钩子,可轻松将当前商品名称动态添加至所有属性标签(如“品牌”“型号”)之前,实现类似“car 1 品牌:honda”的显示效果。
在 WooCommerce 商品详情页中,产品属性(如品牌、型号、颜色等)默认以「属性标签:值」格式展示(例如“品牌:Honda”)。若需增强语义清晰度或满足特定设计需求(如 SEO 优化、多产品对比场景),可将当前商品名称统一前置到每个属性标签前,形成“商品名 + 属性名:值”的结构。
实现该效果的核心在于利用 WooCommerce 提供的 woocommerce_attribute_label 过滤器钩子,它允许你在属性标签渲染前动态修改其文本内容。以下为推荐的完整解决方案:
add_filter( 'woocommerce_attribute_label', 'custom_attribute_label', 1000, 2 );
function custom_attribute_label( $label, $name ) {
global $product;
// 确保在有效的产品上下文中执行(如单商品页)
if ( is_a( $product, 'WC_Product' ) && $product->get_name() ) {
return $product->get_name() . ' ' . $label;
}
return $label;
}✅ 关键说明:
- 优先级设为 1000,确保在其他插件或主题修改之后执行,避免被覆盖;
- 使用 is_a( $product, 'WC_Product' ) 安全判断当前 $product 对象有效性,防止在非产品页面(如归档页、搜索页)意外触发;
- get_name() 方法自动处理转义与多语言兼容性,比直接访问 $product->name 更健壮;
- 该方案作用于所有前台属性输出位置(包括产品页、购物车项、订单邮件中的属性展示),如需仅限单商品页,可额外添加 is_product() 条件判断。
⚠️ 注意事项:
- 请将代码添加至子主题的 functions.php 文件中,避免主题更新时丢失;
- 若属性标签本身已含空格或标点(如自定义标签为“® Brand”),建议在拼接时统一规范空格(如使用 trim($label));
- 某些第三方属性插件可能绕过标准钩子,此时需查阅其文档确认是否支持同类扩展机制。
此方法轻量、无侵入性,无需修改模板文件,即可全局生效,是提升 WooCommerce 属性可读性与品牌一致性的高效实践。

















