- Statut
- Résolu par l’auteur
- Signalé pour
- WPML SEO 2.0.1
Aperçu de l’anomalie
Il s’agit d’un problème général avec Yoast SEO (non spécifique à WPML) et il a été signalé ici.
Si vous formatez vos URL pour afficher la langue comme paramètre dans WPML → Langues, vous remarquerez que les pages paginées dans les langues secondaires afficheront un lien canonique incorrect.
Solution de contournement
Veuillez effectuer une sauvegarde complète de votre site avant de continuer. Ensuite, ajoutez le code suivant dans le fichier functions.php de votre thème :
// 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 );
