- Status
- Resolvido pelo autor
- Relatado para
- WPML SEO 2.0.1
Visão geral do problema
Este é um problema geral com o Yoast SEO (não específico do WPML) e foi relatado aqui.
Se você está formatando seus URLs para exibir o idioma como um parâmetro em WPML → Idiomas, você notará que as páginas em idiomas secundários que são paginadas exibirão um link canônico incorreto.
Solução alternativa
Faça um backup completo do seu site antes de prosseguir. Em seguida, adicione o seguinte código no arquivo functions.php do seu tema:
// 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 );
