WPML
สถานะ
แก้ไขแล้วโดยผู้พัฒนา
ปลั๊กอิน/ธีมที่เกี่ยวข้อง
SEOPress
แท็กหัวข้อ
Compatibility

ภาพรวมของปัญหา

เมื่อใช้ SEOPress ร่วมกับ WPML canonical 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";
            }

ปัญหาที่ทราบแล้วทั้งหมด →