WPML
Stato
Risolto dall’autore
Segnalato per
WPML SEO 2.0.1

Panoramica del problema

Questo è un problema generale di Yoast SEO (non specifico di WPML) ed è stato segnalato qui.

Se stai formattando i tuoi URL per visualizzare la lingua come parametro in WPMLLingue, noterai che le pagine nelle lingue secondarie impaginate mostreranno un link canonico errato.

Soluzione alternativa

Fai un backup completo del tuo sito prima di procedere. Quindi, aggiungi il seguente codice nel file functions.php del tuo 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 ); 

Tutti i problemi noti →