Panoramica del problema
Quando usi RankMath SEO o Yoast SEO con il nostro componente aggiuntivo WPML SEO, potresti riscontrare valori hreflang errati nella sitemap. Invece di usare i valori hreflang definiti nelle impostazioni della lingua di WPML, la sitemap rileva il codice della lingua (ad es., nz, au) anziché il codice completo previsto (ad es., en-nz, en-au).
Soluzione alternativa
Questo problema è stato risolto in WPML SEO 2.2.3. L'aggiornamento risolve il problema sul tuo sito, quindi hai bisogno di questa soluzione alternativa solo se non puoi ancora aggiornare.
Assicurati di avere un backup completo del sito prima di procedere.
- Apri il file …/wp-content/plugins/wp-seo-multilingual/classes/Shared/Sitemap/BaseAlternateLangHooks.php.
- Cerca la riga 180.
- Sostituisci:
private function getAlternateLinks( $alternateLangs ) { $buildAlternateLink = function ( $url, $lang ) { return '<xhtml:link rel="alternate" hreflang="' . esc_attr( $lang ) . '" href="' . esc_url( $url ) . '" />'; }; - Con:
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 ) . '" />'; };