กำหนดค่าความเข้ากันได้ของ WPML กับธีมและปลั๊กอินของ WordPress – การตั้งค่า และ wpml-config.xml ที่กำหนดเอง
WPML สามารถใช้งานได้ทันทีกับธีมและปลั๊กอินยอดนิยมและที่สำคัญทั้งหมดของ WordPress เมื่อติดตั้ง WPML บนเว็บไซต์ที่ใช้ Elementor, WooCommerce, Yoast, Gravity Forms, ACF การแปลก็จะทำงานได้ทันที คุณไม่จำเป็นต้องปรับเปลี่ยนการตั้งค่าใด ๆ บนหน้านี้
หน้านี้มีไว้สำหรับส่วนที่เหลือ ได้แก่ ธีมและปลั๊กอินที่ไม่ค่อยได้รับความนิยม เวอร์ชันที่เพิ่งเผยแพร่ใหม่ซึ่งผู้พัฒนาปล่อยออกมาก่อนที่ความเข้ากันได้ของ WPML จะตามทัน และตัวช่วยทั่วไปจำนวนเล็กน้อยสำหรับเว็บไซต์ที่พบอาการเฉพาะเจาะจง ลูกค้าส่วนใหญ่ไม่เคยเข้ามาที่หน้านี้ เมื่อคุณเข้ามา มักจะเป็นเพราะฝ่ายสนับสนุนของ WPML ได้แนะนำให้คุณใช้ตัวเลือกการสลับเฉพาะเจาะจงหรือให้ wpml-config.xml เพื่อนำมาวาง
หน้าย่อยของการตั้งค่าสองหน้าครอบคลุมเรื่องความเข้ากันได้ และหน้านี้ครอบคลุมทั้งสองหน้า การตั้งค่า > ความเข้ากันได้ เป็นที่รวบรวมตัวเลือกการสลับสำหรับอาการที่พบบ่อย การตั้งค่า > การกำหนดค่า XML ที่กำหนดเอง คือที่ที่คุณเขียน wpml-config.xml ของคุณเอง ซึ่งอธิบายไว้ในครึ่งหลังของหน้านี้ UI สำหรับค่าเริ่มต้นที่พบบ่อยที่สุด (การตั้งค่าการแปลต่อประเภทโพสต์ ต่ออนุกรมวิธาน ต่อฟิลด์) จะอยู่ในหน้าการตั้งค่าแยกต่างหากซึ่งครอบคลุมใน สิ่งที่ได้รับการแปลและสิ่งที่ไม่ได้รับการแปล ลูกค้าส่วนใหญ่ใช้ UI นั้นและจะเข้ามาที่นี่ก็ต่อเมื่อ UI นั้นไม่สามารถตอบสนองความต้องการของพวกเขาได้
ตัวเลือกการสลับความเข้ากันได้
เปิด WPML > การตั้งค่า > ความเข้ากันได้ หน้านี้มีการ์ดสี่ใบ การ์ดแต่ละใบกำหนดเป้าหมายไปที่ปัญหาความเข้ากันได้ประเภทเฉพาะเจาะจง
ตัวเลือกการแปลภาษา – สำหรับธีมและปลั๊กอินที่คำแปลไม่โหลด
เมื่อธีมหรือปลั๊กอินมีคำแปล UI ของตัวเองอยู่แล้ว (ไฟล์ .mo ในโฟลเดอร์ /languages/) แต่คำแปลเหล่านั้นไม่ปรากฏบนเว็บไซต์ของคุณ การ์ด ตัวเลือกการแปลภาษา จะมีตัวเลือกการสลับสามแบบที่ช่วยให้ WPML ค้นหาและนำไปใช้ได้
- โหลดไฟล์
.moของธีมโดยอัตโนมัติโดยใช้load_textdomainบังคับให้ WPML เรียกใช้load_textdomain()สำหรับ text domain ของธีม ใช้เมื่อคำแปลของธีมอยู่บนดิสก์แต่ไม่ปรากฏขึ้น - ป้อน textdomain แทนที่ text domain ที่ตรวจพบอัตโนมัติ ธีมบางตัวลงทะเบียน text domain ในรูปแบบที่ไม่เป็นมาตรฐาน ฟิลด์นี้ช่วยให้คุณระบุได้อย่างชัดเจน
- ใช้ text domain ของธีมหรือปลั๊กอินเมื่อการเรียก gettext ไม่ได้ใช้สตริงตามตัวอักษร แฟล็กความเข้ากันได้สำหรับธีม/ปลั๊กอินที่ใช้การเรียก
__()พร้อมอาร์กิวเมนต์ตัวแปรแทนสตริงตามตัวอักษร WPML ไม่สามารถตรวจจับสิ่งเหล่านี้ได้โดยอัตโนมัติ และตัวเลือกการสลับนี้ช่วยให้สามารถนำคำแปลไปใช้ได้
หากฝ่ายสนับสนุนของ WPML นำทางคุณมาที่นี่ พวกเขาจะบอกคุณว่าต้องตั้งค่าตัวเลือกการสลับและ textdomain ใด
ทำให้ธีมทำงานแบบหลายภาษา
ปรับแต่ง ID สำหรับฟังก์ชันหลายภาษา เลเยอร์ความเข้ากันได้สำหรับธีมที่มีการกำหนดค่าตายตัวสำหรับภาษาเดียว (เช่น ธีมที่จัดเก็บ "ID รูปภาพเด่น" ไว้หนึ่งครั้งและใช้รูปภาพเดียวกันในทุกภาษา)
ธีมสมัยใหม่ส่วนใหญ่ที่เข้ากันได้กับ WPML ไม่จำเป็นต้องใช้สิ่งนี้ ธีมรุ่นเก่าหรือธีมที่รู้จัก WPML น้อยกว่าบางครั้งอาจจำเป็นต้องใช้ เปิดใช้งานหากคุณเห็นการอ้างอิงเนื้อหา (รูปภาพ เมนู รายการเด่น) รั่วไหลข้ามภาษาอย่างไม่ถูกต้อง
การกรองภาษาสำหรับการดำเนินการ AJAX
จัดเก็บคุกกี้ภาษาเพื่อรองรับการกรองภาษาสำหรับ AJAX ปลั๊กอินบางตัวใช้ AJAX เพื่อดึงเนื้อหา เช่น รายการผลิตภัณฑ์ที่ถูกกรอง รายการโพสต์ที่แบ่งหน้าด้วย AJAX ผลลัพธ์การค้นหาขณะพิมพ์ หากไม่มีคุกกี้ภาษา ปลายทาง AJAX จะไม่ทราบว่าควรตอบกลับด้วยภาษาใดและส่งคืนผลลัพธ์ในภาษาที่ไม่ถูกต้อง
เปิดใช้งานคุกกี้หากคุณพบอาการนี้: ผู้เยี่ยมชมในหน้าภาษาฝรั่งเศสได้รับผลลัพธ์ภาษาอังกฤษจากส่วนที่โหลดด้วย AJAX นี่คือการแก้ไขด้วยช่องทำเครื่องหมายเดียวสำหรับข้อบกพร่องทั้งประเภท
หน้าเข้าสู่ระบบและลงทะเบียน
อนุญาตให้แปลหน้าเข้าสู่ระบบและลงทะเบียน /wp-login.php ที่มาพร้อมกับ WordPress และหน้าจอการลงทะเบียนไม่ได้เป็นส่วนหนึ่งของเนื้อหาปกติที่ WPML แปล สิ่งเหล่านี้อยู่นอกห่วงโซ่เทมเพลตของธีม ตัวเลือกการสลับนี้จะเพิ่มสิ่งเหล่านี้เข้าไปในชุดหน้าที่แปลได้ของ WPML
หากเว็บไซต์ของคุณทำงานบน nginx ตัวเลือกการสลับนี้ยังต้องมีการปรับแต่งการกำหนดค่าเซิร์ฟเวอร์ด้วย หน้านี้มีลิงก์ไปยังคู่มือ nginx ของ WPML พร้อมบล็อกการกำหนดค่าที่แน่นอน
ข้อความของธีมและปลั๊กอิน – การตั้งค่าอยู่ที่นี่ ตัวสแกนอยู่ที่อื่น
การทำงานกับสตริงของธีม/ปลั๊กอินสองประเภทถูกแยกออกเป็นสองหน้าจอ:
- การตั้งค่าในหน้านี้ จัดการความเข้ากันได้สำหรับคำแปลที่ธีม/ปลั๊กอินมีอยู่แล้ว เช่น
load_textdomainการแทนที่ textdomain และ gettext ที่ไม่ใช่ตามตัวอักษร - ตัวสแกนเป็นหน้าจอของตัวเอง เมื่อคุณต้องการค้นหาสตริงของธีมและปลั๊กอินที่ยังไม่ได้ลงทะเบียนสำหรับการแปล ให้ใช้หน้าจอ การแปลข้อความผู้ดูแลระบบ ซึ่งสามารถเข้าถึงได้จากแท็บ สตริง ใน การแปล ภายใต้ส่วน "ไม่เห็นสตริงที่คุณกำลังมองหาใช่ไหม"
สำหรับขั้นตอนการสแกนสตริงทั้งหมด โปรดดู การแปลสตริง
wpml-config.xml ที่กำหนดเอง
ธีมและปลั๊กอินที่เข้ากันได้กับ WPML จะมาพร้อมกับไฟล์ wpml-config.xml ที่บอก WPML อย่างชัดเจนว่าฟิลด์ ประเภทโพสต์ อนุกรมวิธาน shortcode และคีย์ meta ใดของตนควรจะแปลได้ WPML จะอ่านไฟล์นี้เมื่อเปิดใช้งาน สำหรับธีมและปลั๊กอินยอดนิยมและที่สำคัญทั้งหมด นี่หมายความว่าการแปลจะทำงานได้อย่างถูกต้องทันที คุณไม่จำเป็นต้องทำอะไรเลย
เมื่อ wpml-config.xml ที่มาพร้อมกับธีมหรือปลั๊กอินไม่เพียงพอสำหรับเว็บไซต์ของคุณ คุณสามารถเขียนของคุณเองได้ WPML จะนำไปใช้ทับซ้อนกับสิ่งที่ธีมหรือปลั๊กอินให้มา
เมื่อใดที่คุณควรเขียน wpml-config.xml ของคุณเอง
มีสามสถานการณ์
- ฟิลด์ที่คุณต้องการแปลไม่ได้อยู่ใน wpml-config.xml ที่ให้มา ผู้พัฒนาธีมหรือปลั๊กอินไม่ได้ประกาศให้ฟิลด์กำหนดเองเป็นสิ่งที่แปลได้ แต่คุณจำเป็นต้องแปลฟิลด์นั้นบนเว็บไซต์ของคุณ
- ฟิลด์มีค่าเริ่มต้นที่ไม่ถูกต้อง wpml-config.xml ที่ให้มาระบุบางสิ่งเป็น คัดลอก แต่คุณต้องการให้ แปล หรือในทางกลับกัน
- คุณกำลังสร้างธีมหรือปลั๊กอินที่กำหนดเอง และคุณต้องการประกาศพฤติกรรมการแปลจากหน้าการตั้งค่าของ WPML แทนที่จะรวมไฟล์ wpml-config.xml ไว้กับโค้ดของคุณ
ในทุกกรณี ฝ่ายสนับสนุนของ WPML อาจนำทางคุณมาที่นี่ พร้อมกับ wpml-config.xml ที่แน่นอนเพื่อนำมาวาง ส่วนใหญ่แล้วนี่เป็นการดำเนินการที่ขับเคลื่อนโดยฝ่ายสนับสนุน และบางครั้งก็เป็นการดำเนินการที่ขับเคลื่อนโดยนักพัฒนา
เหตุใดจึงควรแก้ไข wpml-config.xml ในหน้าจัดการเว็บไซต์ของ WPML แทนที่จะเป็นในไฟล์ธีม
คุณสามารถแก้ไข wpml-config.xml ของธีมหรือปลั๊กอินได้โดยตรง แต่การเปลี่ยนแปลงนั้นจะหายไปในครั้งถัดไปที่ธีมหรือปลั๊กอินอัปเดต ตัวแก้ไขในหน้าจัดการเว็บไซต์ของ WPML ที่ WPML > การตั้งค่า > การกำหนดค่า XML ที่กำหนดเอง จะวาง wpml-config.xml ของคุณทับซ้อนกับสิ่งที่ธีมหรือปลั๊กอินให้มา และยังคงอยู่หลังจากการอัปเดต นี่คือตำแหน่งที่เหมาะสมสำหรับการปรับแต่งเฉพาะเว็บไซต์
รูปแบบของ wpml-config.xml
หน้านี้เป็นตัวแก้ไข XML วางบล็อก <wpml-config>...</wpml-config> บันทึก แล้ว WPML จะนำ wpml-config.xml ของคุณไปใช้
wpml-config.xml ขั้นต่ำที่ประกาศให้ shortcode แปลได้:
<wpml-config>
<shortcodes>
<shortcode>
<tag>add_to_cart_link</tag>
</shortcode>
</shortcodes>
</wpml-config>
ประเภทองค์ประกอบที่คุณมักจะประกาศ:
<custom-fields>ทำเครื่องหมายฟิลด์กำหนดเองเป็นtranslate,copy,copy-onceหรือnothing<custom-types>ประกาศให้ประเภทโพสต์แบบกำหนดเองแปลได้<taxonomies>ประกาศให้อนุกรมวิธานที่กำหนดเองแปลได้<shortcodes>แสดงรายการ shortcode ที่ WPML ควรแปลเนื้อหา<custom-term-fields>สำหรับ Term Meta
แต่ละองค์ประกอบมีแอตทริบิวต์ของตัวเอง (เช่น action="translate" ในฟิลด์กำหนดเอง) สำหรับข้อมูลอ้างอิง wpml-config.xml ฉบับสมบูรณ์ (ทุกองค์ประกอบ ทุกแอตทริบิวต์ ทุกค่าที่อนุญาต) โปรดดู ข้อมูลสำหรับนักพัฒนา WPML
ขั้นตอนการทำงานในทางปฏิบัติ
หากฝ่ายสนับสนุนของ WPML ให้บล็อก wpml-config.xml แก่คุณเพื่อนำมาวาง:
- เปิด WPML > การตั้งค่า > การกำหนดค่า XML ที่กำหนดเอง
- วาง XML ของพวกเขาลงในบล็อก
<wpml-config>ที่มีอยู่ (หรือแทนที่เนื้อหาหากพวกเขาให้บล็อกแบบเต็มมา) - บันทึก
- WPML จะนำ wpml-config.xml ของคุณไปใช้ทันที หากมีการประกาศประเภทโพสต์หรือฟิลด์ใหม่ที่แปลได้ รายการนั้นจะปรากฏใน การตั้งค่า > การแปลประเภทโพสต์ / การแปลฟิลด์ที่กำหนดเอง ทันที
หากคุณกำลังสร้างธีมหรือปลั๊กอินที่กำหนดเองและต้องการให้การกำหนดค่า WPML มาพร้อมกับโค้ด คุณควรใส่บล็อก <wpml-config> เดียวกันลงในไฟล์ wpml-config.xml ที่รูทของธีมหรือปลั๊กอินของคุณแทน WPML จะอ่านไฟล์นี้เมื่อเปิดใช้งาน ตัวแก้ไขในหน้าจัดการเว็บไซต์มีไว้สำหรับการปรับแต่งเฉพาะเว็บไซต์ ส่วนไฟล์ที่รวมมาด้วยมีไว้สำหรับค่าเริ่มต้นของธีม/ปลั๊กอินเอง
เขียนโดย Amir · อัปเดตล่าสุด 2 กรกฎาคม 2026
เขียนโดย Amir · อัปเดตล่าสุด 2 กรกฎาคม 2026