- 상태
- 해결됨
- 보고된 제품
- WPML SEO 2.2.4
- 해결된 버전
- WPML SEO 2.2.5
- 관련 플러그인/테마
- Rank Math SEO
- 주제 태그
- Compatibility
문제 개요
WPML과 함께 RankMath SEO를 사용할 때, 사이트맵의 소스 코드 <xhtml:link rel="alternate" hreflang="...">에서 보조 언어의 홈페이지 URL이 잘못 표시되는 문제가 발생할 수 있습니다. 사이트맵이 언어별 홈페이지(예: domain.com/?lang=es)를 표시하는 대신 전체 페이지 URL(예: domain.com/page-slug/?lang=es)을 출력합니다.
임시 해결 방법
진행하기 전에 사이트의 전체 사이트 백업이 있는지 확인하세요.
- …/wp-content/plugins/wp-seo-multilingual/classes/Shared/Sitemap/BaseAlternateLangHooks.php 파일을 여세요.
- 88번째 줄을 찾으세요.
- 다음 코드를:
$mapPermalink = function ( $id, $language ) use ( $getPermalink ) { return apply_filters( 'wpml_permalink', $getPermalink( $id ), $language ); };
- 다음으로 교체하세요:
$mapPermalink = function ( $id, $language ) use ( $getPermalink ) { // WPML Workaround for wpmlsupp-13368 $front_id = (int) get_option( 'page_on_front' ); if ( $front_id ) { $default_lang = apply_filters( 'wpml_default_language', null ); $id_in_default = (int) apply_filters( 'wpml_object_id', (int) $id, 'page', false, $default_lang ); if ( $id_in_default && $id_in_default === $front_id ) { return apply_filters( 'wpml_permalink', trailingslashit( home_url() ), $language ); } } return apply_filters( 'wpml_permalink', $getPermalink( $id ), $language ); };
- 사이트맵 다시 빌드: “Rank Math > Sitemap Settings”로 이동하여 “Links per sitemap” 값을 변경하고 저장하세요.