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

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

При использовании Rank Math или Yoast SEO с WPML SEO альтернативные ссылки в исходном коде из XML-карты сайта могут некорректно отображать URL-адрес переведенной главной страницы в виде внутренней постоянной ссылки (например, /es/home/) вместо ожидаемого корневого URL-адреса языка (например, /es/). Это не влияет на отображение на фронтенде, где канонические ссылки и ссылки hreflang указаны верно.

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

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


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

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

  • Замените:
    $link[ self::KEY ][ $lang ] = apply_filters( 'wpml_permalink', $link['loc'], $lang );
            


  • На:
    $link[ self::KEY ][ $lang ] = apply_filters( 'wpml_permalink', $link['loc'], $lang, true );
            

  • Повторите ту же операцию в строке 89.

  • Замените:
    return apply_filters( 'wpml_permalink', $getPermalink( $id ), $language );
            


  • На:
    return apply_filters( 'wpml_permalink', $getPermalink( $id ), $language, true );
            

После применения этих изменений Вам необходимо пересоздать XML-карты сайта:

  • Для Rank Math: перейдите в «Rank Math > Sitemap Settings», измените значение «Links per sitemap», сохраните настройки (после этого Вы сможете вернуть предпочитаемое значение).
  • Для Yoast SEO: следуйте этому руководству, чтобы пересоздать XML-карты сайта.

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