- 상태
- 해결됨
- 보고된 제품
- WPML Multilingual CMS 3.3.6
- 해결된 버전
- 3.3.6
문제 개요
페이지 헤더에서 hreflang 메타 태그가 누락될 수 있습니다. 이 문제는 WPML 3.3.6부터 발생하고 있으며, WPML을 너무 일찍 로드하는 테마 또는 플러그인과 함께 사용할 때 나타납니다.
WPML은 사이트 헤더 섹션에 <link hreflang=”lang”> 태그를 포함해야 합니다. WPML 3.3.6을 사용하며 특정 플러그인 또는 테마와 함께 사용하는 일부 사이트에서는 이 태그가 누락됩니다. 이 문제는 WPML이 헤더 초기에 이 태그를 출력하려고 시도하지만, 다른 플러그인이 경쟁 조건을 유발하여 WPML을 너무 일찍 트리거하기 때문에 발생합니다. Google 웹마스터 도구에서 “Incorrect hreflang implementation”이라는 이메일을 받을 수 있습니다.
이 기능에 대한 전체 설명은 언어 및 지역 URL에 대한 Google 콘텐츠 가이드라인에서 확인할 수 있습니다.
임시 해결 방법
WPML 3.3.6에서 이 문제를 해결하려면:
sitepress-multilingual-cms/sitepress.class.php파일을 여세요- 이 파일의 맨 아래로 스크롤하면 다음 내용이 표시됩니다:

- 다음 줄을:
add_action( 'wp_head', array( $this, 'head_langs' ), 1 ); - 아래 내용으로 바꾸세요:
add_action( 'wp_head', array( $this, 'head_langs' ) ); - 이 코드의 최종 버전은 다음과 같아야 합니다:

- 파일을 저장하세요
WPML의 다음 버전에 동일한 수정 사항이 적용됩니다.
3단계의 코드는 hreflang 메타 태그를 최대한 일찍 출력하기 위한 것이었으나, 일부 테마 및 플러그인에서 문제를 일으킵니다.
여전히 hreflang 메타 태그를 최대한 일찍 출력하려면 더 복잡한 해결책을 적용할 수 있습니다. 테마의 functions.php 파일에 다음 코드를 추가하세요:
function my_handle_head_hreflang() {
global $sitepress;
$settings = $sitepress->get_settings();
if ( $settings[ 'seo' ][ 'head_langs' ] ) {
remove_action( 'wp_head', array( $sitepress, 'head_langs' ) );
add_action( 'wp_head', array( $this, 'head_langs' ), 1 );
}
}
add_action('wpml_loaded', 'my_handle_head_hreflang');