Übersicht über das Problem
Wenn Sie RankMath SEO oder Yoast SEO mit unserem Add-on WPML SEO verwenden, treten in der Sitemap möglicherweise falsche hreflang-Werte auf. Anstatt die in den Spracheinstellungen von WPML festgelegten hreflang-Werte zu verwenden, übernimmt die Sitemap den Sprachcode (z. B. nz, au) anstelle des erwarteten vollständigen Codes (z. B. en-nz, en-au).
Problemumgehung
Dieses Problem ist in WPML SEO 2.2.3 behoben. Ein Update behebt dies auf Ihrer Website, daher benötigen Sie diese Problemumgehung nur, wenn Sie noch nicht aktualisieren können.
Bitte stellen Sie sicher, dass Sie über ein vollständiges Backup Ihrer Website verfügen, bevor Sie fortfahren.
- Öffnen Sie die Datei …/wp-content/plugins/wp-seo-multilingual/classes/Shared/Sitemap/BaseAlternateLangHooks.php.
- Suchen Sie Zeile 180.
- Ersetzen Sie:
private function getAlternateLinks( $alternateLangs ) { $buildAlternateLink = function ( $url, $lang ) { return '<xhtml:link rel="alternate" hreflang="' . esc_attr( $lang ) . '" href="' . esc_url( $url ) . '" />'; }; - Durch:
private function getAlternateLinks( $alternateLangs ) { $buildAlternateLink = function ( $url, $lang ) { $languages = apply_filters( 'wpml_active_languages', null, [] ); $hreflang = isset( $languages[ $lang ]['tag'] ) ? $languages[ $lang ]['tag'] : $lang; return '<xhtml:link rel="alternate" hreflang="' . esc_attr( $hreflang ) . '" href="' . esc_url( $url ) . '" />'; };