- Estado
- Resuelto por el autor
- Notificado para
- WPML SEO 2.0.1
Resumen del problema
Este es un problema general de Yoast SEO (no específico de WPML) y se ha notificado aquí.
Si da formato a sus URL para mostrar el idioma como parámetro en WPML → Idiomas, notará que las páginas en idiomas secundarios que están paginadas mostrarán un enlace canónico incorrecto.
Solución alternativa
Por favor, haga una copia de seguridad completa de su sitio antes de continuar. Luego, añada el siguiente código en el archivo functions.php de su 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 );
