- สถานะ
- แก้ไขแล้ว
- รายงานสำหรับ
- WPML SEO 2.2.4
- แก้ไขใน
- 2.2.5
- ปลั๊กอิน/ธีมที่เกี่ยวข้อง
- Rank Math SEO
- แท็กหัวข้อ
- Compatibility
ภาพรวมของปัญหา
เมื่อใช้ Rank Math หรือ Yoast SEO ร่วมกับ WPML SEO ลิงก์ทางเลือกในซอร์สโค้ดจากไซต์แมป XML อาจแสดง URL ของหน้าแรกที่แปลแล้วอย่างไม่ถูกต้อง โดยแสดงเป็นลิงก์ถาวรภายใน (เช่น /es/home/) แทนที่จะเป็น URL รูทของภาษาตามที่ควรจะเป็น (เช่น /es/) ปัญหานี้ไม่ส่งผลกระทบต่อการแสดงผลส่วนหน้า ซึ่งลิงก์ canonical และ hreflang จะยังคงแสดงผลอย่างถูกต้อง
วิธีแก้ปัญหาชั่วคราว
โปรดตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลไซต์ทั้งหมดของคุณก่อนดำเนินการต่อ
- เปิดไฟล์ …/wp-content/plugins/wp-seo-multilingual/classes/Shared/Sitemap/BaseAlternateLangHooks.php
- ค้นหาบรรทัดที่ 61
- แทนที่:
$link[ self::KEY ][ $lang ] = apply_filters( 'wpml_permalink', $link['loc'], $lang );
- ด้วย:
$link[ self::KEY ][ $lang ] = apply_filters( 'wpml_permalink', $link['loc'], $lang, true );
- ทำขั้นตอนเดียวกันซ้ำในบรรทัดที่ 89
- แทนที่:
return apply_filters( 'wpml_permalink', $getPermalink( $id ), $language );
- ด้วย:
return apply_filters( 'wpml_permalink', $getPermalink( $id ), $language, true );
หลังจากใช้การเปลี่ยนแปลงเหล่านี้ คุณต้องสร้างไซต์แมป XML ของคุณใหม่:
- สำหรับ Rank Math: ไปที่ “Rank Math > Sitemap Settings” เปลี่ยนค่า “Links per sitemap” และบันทึกการตั้งค่า (คุณสามารถเปลี่ยนกลับเป็นค่าที่คุณต้องการได้ในภายหลัง)
- สำหรับ Yoast SEO: ทำตามบทช่วยสอนนี้เพื่อสร้างไซต์แมป XML ใหม่