WPML

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 ) . '" />';
        };

Todos os problemas conhecidos

Ainda está vendo este problema?

Se a atualização não resolver, envie uma dúvida de suporte e nós vamos analisar isso com você.