Visão geral do problema
Ao usar o RankMath SEO ou o Yoast SEO com o nosso complemento WPML SEO, você pode encontrar valores incorretos de hreflang no sitemap. Em vez de usar os valores de hreflang definidos nas configurações de idioma do WPML, o sitemap usa o código do idioma (por exemplo, nz, au) em vez do código completo esperado (por exemplo, en-nz, en-au).
Solução alternativa
Este problema foi corrigido em WPML SEO 2.2.3. Atualizar resolve isso no seu site, então você só precisa desta solução alternativa se ainda não puder atualizar.
Por favor, certifique-se de ter um backup completo do seu site antes de prosseguir.
- Abra o arquivo …/wp-content/plugins/wp-seo-multilingual/classes/Shared/Sitemap/BaseAlternateLangHooks.php.
- Procure a linha 180.
- Substitua:
private function getAlternateLinks( $alternateLangs ) { $buildAlternateLink = function ( $url, $lang ) { return '<xhtml:link rel="alternate" hreflang="' . esc_attr( $lang ) . '" href="' . esc_url( $url ) . '" />'; }; - Por:
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 ) . '" />'; };