WPML
상태
개발자가 해결함
관련 플러그인/테마
SEOPress
주제 태그
Compatibility

문제 개요

WPML과 함께 SEOPress를 사용할 때, “기본 언어를 대체 언어로 사용” 또는 “콘텐츠 복제” 방식을 사용하면 번역되지 않은 콘텐츠의 표준 URL이 기본 언어를 가리키지 않습니다. 이로 인해 중복 콘텐츠 문제가 발생할 수 있습니다.

임시 해결 방법

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

  • 열기: …/wp-content/plugins/wp-seopress/inc/functions/options-titles-metas.php
  • 1022번째 줄을 찾으세요.
  • 다음 코드를:
            function seopress_titles_canonical_hook() {
                global $wp;
    
                $current_url = user_trailingslashit(home_url(add_query_arg([], $wp->request)));
    
                if (is_search()) {
                    $seopress_titles_canonical = '';
                } elseif (is_paged() && is_singular()) {//Paginated pages
                    $seopress_titles_canonical = '';
                } elseif (is_paged()) {
                    $seopress_titles_canonical = '';
                } elseif (is_singular()) {
                    $seopress_titles_canonical = '';
                } else {
                    $seopress_titles_canonical = '';
                }
                //Hook on post canonical URL - 'seopress_titles_canonical'
                if (has_filter('seopress_titles_canonical')) {
                    $seopress_titles_canonical = apply_filters('seopress_titles_canonical', $seopress_titles_canonical);
                }
                echo $seopress_titles_canonical . "n";
            }
  • 다음으로 교체하세요:
            function seopress_titles_canonical_hook() {
                global $wp;
    
                $current_url = user_trailingslashit(home_url(add_query_arg([], $wp->request)));
                // WPML Workaround for compsupp-7703
                if (class_exists('SitePress')) {
                  $post_ID = get_the_ID();
                  $post_type = get_post_type( $post_ID );
                  $transl_status = apply_filters( 'wpml_element_translation_type', NULL, $post_ID, $post_type );
                  // If the post is not translated, switch to the default language
                  if ($transl_status != 1) { 
                      $my_default_lang = apply_filters('wpml_default_language', NULL );
                      $my_current_lang = apply_filters( 'wpml_current_language', NULL );
                      do_action( 'wpml_switch_language', $my_default_lang );
                  } 
                }
                if (is_search()) {
                    $seopress_titles_canonical = '';
                } elseif (is_paged() && is_singular()) {//Paginated pages
                    $seopress_titles_canonical = '';
                } elseif (is_paged()) {
                    $seopress_titles_canonical = '';
                } elseif (is_singular()) {
                    $seopress_titles_canonical = '';
                } else {
                    $seopress_titles_canonical = '';
                }
                // Then switch back to the current language
                if (class_exists('SitePress')) {
                    if ($transl_status != 1) {
                      do_action( 'wpml_switch_language', $my_current_lang );
                    }
                }
                //Hook on post canonical URL - 'seopress_titles_canonical'
                if (has_filter('seopress_titles_canonical')) {
                    $seopress_titles_canonical = apply_filters('seopress_titles_canonical', $seopress_titles_canonical);
                }
                echo $seopress_titles_canonical . "n";
            }

알려진 모든 문제 →