Woocommerce技术求助:如何修改星级评分旁的customer reviews文本
问题描述
需要修改WooCommerce页面中以下HTML元素内的customer reviews文本:
<a href="#reviews" class="woocommerce-review-link" rel="nofollow"><span class="count">1</span> customer reviews</a>
尝试了以下代码但未生效:
add_filter( 'gettext', function( $translated_text ) { if ( '**customer reviews**' === $translated_text ) { $translated_text = '**reviews**'; } return $translated_text; } );
有效代码片段
失效原因
之前的代码无法生效主要有两个问题:
- 错误在匹配文本中加入了
**标记,实际原始文本为纯英文的customer reviews - 未指定WooCommerce专属的文本域
woocommerce,导致过滤器无法精准定位目标文本
另外WooCommerce对评论数的单数、复数有分别处理逻辑,因此需要同时处理两种场景:
// 处理复数评论数(数量>1时) add_filter( 'gettext', function( $translated_text, $text, $domain ) { if ( 'woocommerce' === $domain && 'customer reviews' === $text ) { $translated_text = 'reviews'; // 替换为你需要的文本 } return $translated_text; }, 10, 3 ); // 处理单数评论数(数量=1时) add_filter( 'ngettext', function( $translated_text, $single, $plural, $number, $domain ) { if ( 'woocommerce' === $domain && 'customer review' === $single ) { $translated_text = 'review'; // 替换为你需要的文本 } return $translated_text; }, 10, 5 );
代码说明
- 通过指定
$domain为woocommerce,确保仅修改WooCommerce相关文本,避免影响其他内容 - 分别处理单数、复数文本,覆盖所有评论数显示场景
- 将代码中的
reviews/review替换为你实际需要的文本即可
内容的提问来源于stack exchange,提问作者thevu
相关产品推荐
相关产品推荐

