WPML
Статус
Решено
Заявлено для
WPML SEO 2.2.2
Решено в
WPML SEO 2.2.3
Связанный плагин/тема
Rank Math SEO
Теги темы
Compatibility

Обзор проблемы

При использовании RankMath SEO или Yoast SEO с нашим дополнением WPML SEO Вы можете столкнуться с некорректными значениями hreflang в XML-карте сайта. Вместо использования значений hreflang, заданных в настройках языков WPML, XML-карта сайта использует код языка (например, nz, au) вместо ожидаемого полного кода (например, en-nz, en-au).

Обходное решение

Пожалуйста, прежде чем продолжить, убедитесь, что у Вас есть полная резервная копия сайта.


  • Откройте файл …/wp-content/plugins/wp-seo-multilingual/classes/Shared/Sitemap/BaseAlternateLangHooks.php.

  • Найдите строку 180.

  • Замените:
    private function getAlternateLinks( $alternateLangs ) {
        $buildAlternateLink = function ( $url, $lang ) {
            return '<xhtml:link rel="alternate" hreflang="' . esc_attr( $lang ) . '" href="' . esc_url( $url ) . '" />';
        };
            


  • На:
    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 ) . '" />';
        };
            

Все известные проблемы →