WPML

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

shortcode rank_math_html_sitemap ของปลั๊กอิน Rank Math SEO แสดงไซต์แมป 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
โปรดทราบว่าคุณอาจต้องรีเซ็ตไซต์แมป XML ของคุณ คุณสามารถทำได้โดยไปที่ Rank Math SEOSitemaps settings จากนั้นแก้ไขการตั้งค่าและเปลี่ยนกลับอีกครั้ง

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

ยังคงพบปัญหานี้อยู่หรือไม่

หากการอัปเดตไม่สามารถแก้ไขปัญหานี้ได้ ส่งคำถามถึงฝ่ายสนับสนุน และเราจะตรวจสอบร่วมกับคุณ