WPML
Status
Vom Autor gelöst
Gemeldet für
WPML SEO 2.0.1

Übersicht über das Problem

Dies ist ein allgemeines Problem mit Yoast SEO (nicht spezifisch für WPML) und es wurde hier gemeldet.

Wenn Sie Ihre URLs unter WPMLSprachen so formatieren, dass die Sprache als Parameter angezeigt wird, werden Sie feststellen, dass paginierte Seiten in Sekundärsprachen einen falschen Canonical-Link anzeigen.

Problemumgehung

Bitte erstellen Sie ein vollständiges Backup Ihrer Website, bevor Sie fortfahren. Fügen Sie dann den folgenden Code zur Datei functions.php Ihres Themes hinzu:

 
// 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 ); 

Alle bekannten Probleme →