WPML

문제 개요

Rank Math SEO 플러그인에서 제공하는 rank_math_html_sitemap 숏코드가 현재 언어의 콘텐츠만 표시하는 대신 모든 언어의 페이지가 포함된 HTML 사이트맵을 표시합니다.

임시 해결 방법

이 문제는 해결되었습니다. 최신 버전으로 업데이트하면 사이트에서 이 문제가 해결되므로, 아직 업데이트할 수 없는 경우에만 이 임시 해결 방법이 필요합니다.

진행하기 전에 사이트의 전체 백업을 생성했는지 확인하세요.

  • …/wp-content/plugins/seo-by-rank-math/includes/modules/sitemap/html-sitemap/class-posts.php 파일을 여세요.
  • 88번째 줄을 찾으세요.
  • 변경 전:
    $sql       = "
    	SELECT l.ID, post_title, post_name, post_parent, post_date, post_type, l.post_modified
    	FROM (
    		SELECT DISTINCT p.ID, p.post_modified FROM {$wpdb->posts} as p
    		LEFT JOIN {$wpdb->postmeta} AS pm ON ( p.ID = pm.post_id AND pm.meta_key = 'rank_math_robots' )
    		WHERE (
    			( pm.meta_key = 'rank_math_robots' AND pm.meta_value NOT LIKE '%noindex%' ) OR
    			pm.post_id IS NULL
    		)
    		AND p.post_type IN ( '" . $post_type . "' ) AND p.post_status IN ( '" . join( "', '", esc_sql( $statuses ) ) . "' )
    		ORDER BY p.post_modified DESC
    	)
    	o JOIN {$wpdb->posts} l ON l.ID = o.ID " . $get_child . " ORDER BY " . $sort['field'] . " " . $sort['order']; // phpcs:ignore
    return $wpdb->get_results( $wpdb->prepare( $sql ) ); // phpcs:ignore
  • 변경 후:
    $current_language = apply_filters( 'wpml_current_language', NULL );				
    $sql = "
    SELECT l.ID, post_title, post_name, post_parent, post_date, post_type, l.post_modified
    FROM (
    	SELECT DISTINCT p.ID, p.post_modified FROM {$wpdb->posts} as p
    	LEFT JOIN {$wpdb->postmeta} AS pm ON ( p.ID = pm.post_id AND pm.meta_key = 'rank_math_robots' )
    	INNER JOIN {$wpdb->prefix}icl_translations AS icl ON ( p.ID = icl.element_id AND icl.language_code = %s AND icl.element_type LIKE 'post_%' )
    	WHERE (
    		( pm.meta_key = 'rank_math_robots' AND pm.meta_value NOT LIKE '%noindex%' ) OR
    		pm.post_id IS NULL
    	)
    	AND p.post_type IN ( %s ) AND p.post_status IN ( '" . join( "', '", esc_sql( $statuses ) ) . "' )
    	ORDER BY p.post_modified DESC
    ) o
    JOIN {$wpdb->posts} l ON l.ID = o.ID " . $get_child . " ORDER BY " . $sort['field'] . " " . $sort['order']; // phpcs:ignore
    $sql = $wpdb->prepare($sql, $current_language, $post_type);
    return $wpdb->get_results( $sql ); // phpcs:ignore
사이트맵을 초기화해야 할 수도 있습니다. Rank Math SEOSitemaps settings로 이동하여 설정을 수정했다가 다시 변경하면 초기화할 수 있습니다.

모든 알려진 문제

여전히 이 문제가 발생합니까?

업데이트해도 문제가 해결되지 않으면 지원 문의를 하세요. 함께 살펴보겠습니다.