- Статус
- Решено
- Заявлено для
- WPML SEO 2.2.0
- Решено в
- WPML SEO 2.2.2
- Связанный плагин/тема
- Yoast SEO
- Теги темы
- Compatibility
Обзор проблемы
При использовании Yoast SEO вместе с WPML SEO Вы можете столкнуться с проблемой, когда теги hreflang для скрытых языков по-прежнему присутствуют в исходном коде XML-карты сайта в качестве ссылок на альтернативные языки, даже если записи на скрытых языках корректно исключены из индекса XML-карты сайта.
Обходное решение
Пожалуйста, перед продолжением убедитесь, что у Вас есть полная резервная копия Вашего сайта.
- Откройте файл …/wp-content/plugins/wp-seo-multilingual/classes/Shared/Sitemap/BaseAlternateLangHooks.php.
- Найдите функцию
addAlternateLangData, которая начинается со строки 59. - После этой строки:
list( $elements, $getPermalink, $isIndexable ) = $this->getEntryHelpers( $type, $obj );
- Вставьте следующий блок кода:
// WPML Workaround for wpmlwpseo-350 - Exclude hidden language posts global $sitepress; $hidden_languages = $sitepress->get_setting( 'hidden_languages', [] ); if ( $elements && !empty($hidden_languages) ) { foreach( $elements as $lang => $element) { if ( in_array( $lang, $hidden_languages ) ){ unset( $elements[$lang] ); } } }