WPML
สถานะ
แก้ไขแล้ว
รายงานสำหรับ
WPML Multilingual CMS 4.6.9
แก้ไขใน
WPML 4.9.3
แท็กหัวข้อ
Bug

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

ในบางกรณี เมื่อใช้เทมเพลตหน้าแบบกำหนดเอง เทมเพลตที่เลือกจะไม่ถูกนำไปใช้อย่างถูกต้องกับหน้าที่แปลแล้ว

วิธีแก้ปัญหาชั่วคราว

เพื่อให้แน่ใจว่าเทมเพลตหน้าแบบกำหนดเองถูกนำไปใช้กับหน้าที่แปลอย่างถูกต้อง ให้ทำตามขั้นตอนเหล่านี้:


  • ลบรายการที่เกี่ยวข้องออกจากทั้งตาราง wp_posts และ icl_translations
หรือ

  • สลับไปใช้ภาษารองโดยใช้แถบหน้าจัดการเว็บไซต์ด้านบน จากนั้นไปที่ รูปแบบเว็บ > ตัวแก้ไข ค้นหาเทมเพลตที่แปลแล้ว และลบออก

  • ใน WPML > การตั้งค่า > URL ของหน้า ให้เปิดใช้งาน “แปล” สำหรับการแปล slug (วิธีนี้ช่วยให้แน่ใจว่า slug ของเทมเพลตจะรวมอยู่ในการแปลแทนที่จะถูกสร้างขึ้นอัตโนมัติจากชื่อ)

  • เปิดไฟล์: wp-content/plugins/sitepress-multilingual-cms/classes/full-site-editing/BlockTemplates.php

  • ประมาณบรรทัดที่ 56 ให้คอมเมนต์บรรทัดต่อไปนี้ออก:
    $postData['post_name'] = $post->post_name;


  • ส่งเทมเพลตไปแปลอีกครั้ง

  • เมื่อแปลเทมเพลต ตรวจสอบให้แน่ใจว่า slug ถูกต้องและรวม slug ของหน้าหรืออนุกรมวิธานที่แปลแล้ว

สถานการณ์กรณีเฉพาะ


มีลำดับเฉพาะที่หน้าที่แปลอาจไม่เชื่อมโยงกับเทมเพลตที่แปลแล้ว:

  • เมื่อคุณสร้างเทมเพลตแบบกำหนดเองใหม่โดยตรงในขณะที่สร้างหน้าใหม่ (โดยเลือก “เทมเพลต > สร้างเทมเพลตใหม่” ในแถบด้านข้างขวา) ทั้งหน้าและเทมเพลตจะเผยแพร่พร้อมกัน

  • หากเปิดใช้งานการแปลอัตโนมัติ (”แปลทุกอย่าง“) WPML จะส่งทั้งหน้าและเทมเพลตไปแปลในเวลาเดียวกัน

  • หากการแปลหน้าเสร็จสมบูรณ์ก่อนการแปลเทมเพลต เทมเพลตที่แปลแล้วจะยังไม่มีอยู่เพื่อกำหนดให้กับหน้า ดังนั้นหน้าที่แปลแล้วจึงไปใช้เทมเพลตเริ่มต้นแทน

  • เพื่อแก้ไขปัญหานี้ เมื่อการแปลเทมเพลตเสร็จสมบูรณ์และเผยแพร่แล้ว ให้ส่งหน้าที่แปลแล้วไปแปลอีกครั้ง เพื่อให้หน้านั้นรับเทมเพลตที่แปลใหม่ได้อย่างถูกต้อง

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