- 状态
- 已由作者解决
- 报告针对
- WPML SEO 2.0.1
问题概述
这是 Yoast SEO 的一个普遍问题(并非 WPML 特有),并且已在此处报告。
如果您在 WPML → 语言 中设置 URL 格式以将语言显示为参数,您会注意到分页的次要语言页面将显示不正确的规范链接。
临时解决方法
在继续操作之前,请对您的站点进行完整备份。然后,在您的functions.php主题文件中添加以下代码:
// define the wpseo_canonical callback
function wpmldp_filter_wpseo_canonical_lang_parameter_position( $canonical ) {
// decode URL
$canonical = urldecode($canonical);
// get current language
$my_current_lang = apply_filters( 'wpml_current_language', NULL );
// define ?lang parameter
$param = '?lang='.$my_current_lang;
// check if current $canonical contains the parameter
if(strpos($canonical, $param) !== false){
// remove the parameter from URL
$canonical = str_replace('/'.$param, "", $canonical);
// add it again
$canonical = $canonical.$param;
}
return $canonical;
};
// add the filter
add_filter( 'wpseo_canonical', 'wpmldp_filter_wpseo_canonical_lang_parameter_position', 999 );
