문제 개요
Yoast SEO와 WPML SEO를 함께 사용할 때, 숨김 언어의 글이 사이트맵 인덱스에서 올바르게 제외되었음에도 불구하고 숨김 언어에 대한 hreflang 태그가 사이트맵의 소스 코드에 대체 언어 참조로 여전히 표시되는 문제가 발생할 수 있습니다.
임시 해결 방법
계속 진행하기 전에 사이트의 전체 사이트 백업을 완료했는지 확인하세요.
- …/wp-content/plugins/wp-seo-multilingual/classes/Shared/Sitemap/BaseAlternateLangHooks.php 파일을 여세요.
- 59번째 줄에서 시작하는
addAlternateLangData함수를 찾으세요. - 이 줄 다음에:
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] ); } } }