WPML
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 WPMLLangues, 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 ); 

Toutes les anomalies connues →