WPML
상태
해결됨
보고된 제품
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” 값을 변경하고 저장하세요.

알려진 모든 문제 →