- Статус
- Решено
- Заявлено для
- 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-карты сайта.