如何让WordPress特定产品分类的产品页面仅触发指定翻译代码?
实现特定产品分类页面的翻译文本替换
原代码会全局替换翻译文本,要让它仅在特定产品分类下的单个产品页面生效,只需在函数中添加WooCommerce的条件判断逻辑即可:
function change_translate_text( $translated_text ) { // 仅在单个产品页面,且产品属于指定分类时执行替换 if ( is_product() && has_term( '目标分类别名或ID', 'product_cat', get_the_ID() ) ) { if ( 'Nederlands' === $translated_text ) { $translated_text = 'Engels'; } } return $translated_text; } add_filter( 'gettext', 'change_translate_text', 20 );
关键说明:
is_product():WordPress/WooCommerce内置函数,判断当前页面是否是单个产品详情页has_term():检查当前产品是否属于指定分类,三个参数分别为:- 目标分类的别名(slug)、ID或名称(推荐用slug或ID,更稳定)
- 分类 taxonomy 名称,WooCommerce产品分类固定为
product_cat - 当前产品的ID,用
get_the_ID()获取
- 只有同时满足两个条件时,才会执行翻译文本替换,否则直接返回原翻译内容
使用时记得把代码中的'目标分类别名或ID'替换成你实际需要的产品分类标识,比如分类别名是electronics就填'electronics',或者用分类ID比如12。
内容的提问来源于stack exchange,提问作者Ma Te
相关产品推荐
相关产品推荐

