如何在WordPress+Rank Math+WPML中将hreflang从en-ae格式化为en-AE?
解决WPML hreflang格式从en-ae转为en-AE的问题
你需要将WPML生成的hreflang属性值从en-ae调整为en-AE,但现有代码会把整个字符串转为大写(变成EN-AE),手动在WPML设置里调整也没效果。
可以用下面的自定义函数替代原有代码,只把hreflang里的区域代码部分转为大写,语言部分保持小写:
function fix_hreflang_case($hrefs) { $fixed_hrefs = []; foreach ($hrefs as $lang_code => $url) { // 拆分语言和区域部分 $parts = explode('-', $lang_code); if (count($parts) === 2) { // 语言小写,区域大写 $fixed_lang = strtolower($parts[0]) . '-' . strtoupper($parts[1]); $fixed_hrefs[$fixed_lang] = $url; } else { // 没有区域的语言代码直接保留 $fixed_hrefs[$lang_code] = $url; } } return $fixed_hrefs; } add_filter('wpml_hreflangs', 'fix_hreflang_case');
代码说明:
- 遍历WPML返回的hreflang数组,逐个处理每个语言代码
- 用
explode('-', $lang_code)拆分语言(如en)和区域(如ae)部分 - 语言部分强制转小写,区域部分强制转大写,再拼接成
语言-区域的格式 - 对于没有区域的语言代码(如
en),直接保留原格式
把这段代码添加到你的主题functions.php文件或者自定义插件中,就能生成符合要求的en-AE格式hreflang属性了。
内容的提问来源于stack exchange,提问作者libertarian
相关产品推荐
相关产品推荐

