ในการลงทะเบียนวิดเจ็ตของปลั๊กอินสร้างหน้าเว็บแบบกำหนดเองสำหรับการแปล คุณต้องใช้ไฟล์ wpml-config.xml ทำตามบทช่วยสอนนี้เพื่อเรียนรู้วิธีการใช้งาน
คู่มือนี้จัดทำขึ้นสำหรับนักพัฒนาที่สร้างธีมและปลั๊กอิน หรือเพิ่มโค้ดปลั๊กอินสร้างหน้าเว็บแบบกำหนดเองลงในไซต์ของตน
หากคุณใช้ปลั๊กอินสร้างหน้าเว็บของบุคคลที่สามและไม่สามารถแปลวิดเจ็ตแบบกำหนดเองบนเว็บไซต์ของคุณได้ โปรดติดต่อฝ่ายสนับสนุนของ WPML
ปลั๊กอินสร้างหน้าเว็บอย่าง Elementor (เปิดในแท็บใหม่), Beaver Builder (เปิดในแท็บใหม่), SiteOrigin (เปิดในแท็บใหม่) และ Cornerstone (เปิดในแท็บใหม่) มาพร้อมกับชุดวิดเจ็ตของตัวเอง วิดเจ็ตเริ่มต้นเหล่านี้ทำงานร่วมกับ WPML ได้อย่างราบรื่น
บางครั้งคุณอาจสร้างวิดเจ็ตแบบกำหนดเองที่ตั้งใจจะใช้กับปลั๊กอินสร้างหน้าเว็บเหล่านี้หรือปลั๊กอินอื่น ๆ
วิดเจ็ตแบบกำหนดเองคือวิดเจ็ตเพิ่มเติมที่มีเอกลักษณ์เฉพาะตัวซึ่งไม่ได้มาพร้อมกับปลั๊กอินสร้างหน้าเว็บ ซึ่งอาจสร้างขึ้นโดยทีมพัฒนาของคุณ นักพัฒนาบุคคลที่สาม หรือมาจากปลั๊กอินและธีมอื่น ๆ
วิดเจ็ตแบบกำหนดเองยังรวมถึงวิดเจ็ตใด ๆ ที่มาจากปลั๊กอินส่วนเสริมที่พัฒนาขึ้นโดยเฉพาะสำหรับปลั๊กอินสร้างหน้าเว็บ เช่น Elementor โดยนักพัฒนาภายนอก
ฉันต้องลงทะเบียนวิดเจ็ตแบบกำหนดเองสำหรับการแปลเมื่อใด
คุณต้องลงทะเบียนวิดเจ็ตแบบกำหนดเองสำหรับการแปล:
- หากเป็นวิดเจ็ตที่ไม่ได้มาจากปลั๊กอินสร้างหน้าเว็บตั้งแต่แรก
- หากคุณสร้างและเพิ่มผ่านปลั๊กอินหรือธีมอื่น
- หากได้รับการพัฒนาสำหรับเว็บไซต์ WordPress ของคุณหรือปลั๊กอินสร้างหน้าเว็บเฉพาะโดยทีมของคุณหรือบุคคลที่สาม
ในอดีต วิธีที่พบบ่อยที่สุดในการลงทะเบียนวิดเจ็ตแบบกำหนดเองสำหรับการแปลคือการใช้โค้ด PHP แบบกำหนดเอง ปัจจุบันคุณสามารถลงทะเบียนวิดเจ็ตสำหรับการแปลได้อย่างง่ายดายโดยใช้ wpml-config.xml ซึ่งเป็นไฟล์การกำหนดค่าของ WPML
การลงทะเบียนวิดเจ็ต Elementor แบบกำหนดเองสำหรับการแปลใน WPML 4.9+
ใน WPML 4.9 ขึ้นไป WPML จะจดจำวิดเจ็ต Elementor แบบกำหนดเองโดยอัตโนมัติและทำให้สามารถแปลได้ อย่างไรก็ตาม อาจมีการลงทะเบียนสตริงที่คุณไม่ต้องการให้แปล
นั่นคือเหตุผลที่เราขอแนะนำอย่างยิ่งให้คุณกำหนดค่าไฟล์ wpml-config.xml ด้วยตนเองตามที่อธิบายไว้ในหน้านี้ เพื่อให้คุณสามารถควบคุมได้ว่าฟิลด์ใดบ้างที่สามารถแปลได้
วิธีลงทะเบียนวิดเจ็ต Elementor และบล็อก Gutenberg แบบกำหนดเองสำหรับการแปลโดยใช้ปลั๊กอิน Multilingual Tools
ปลั๊กอิน Multilingual Tools ของเรามีเครื่องมือ WPML – Config Generator สำหรับวิดเจ็ต Elementor และบล็อก Gutenberg ฟีเจอร์นี้ช่วยให้คุณสามารถเพิ่มวิดเจ็ต Elementor หรือบล็อก Gutenberg แบบกำหนดเองใด ๆ ที่คุณต้องการลงทะเบียนสำหรับการแปลลงในหน้าเว็บ จากนั้นระบบจะสร้างโค้ด XML เวอร์ชันแรกที่คุณต้องการโดยอัตโนมัติ
เรียนรู้วิธีลงทะเบียนวิดเจ็ต Elementor แบบกำหนดเองสำหรับการแปลและวิธีทำให้บล็อก Gutenberg สามารถแปลได้
วิธีค้นหาข้อมูลการลงทะเบียนของวิดเจ็ต
เพื่อให้สามารถลงทะเบียนวิดเจ็ตแบบกำหนดเองภายในไฟล์ wpml-config.xml ได้ ก่อนอื่นคุณต้องค้นหาข้อมูลพื้นฐานบางอย่างเกี่ยวกับวิดเจ็ตนั้น: ชื่อประเภทของวิดเจ็ตและชื่อของฟิลด์ที่คุณต้องการแปล
เพิ่มวิดเจ็ตลงในหน้าใหม่และบันทึกหน้านั้น Elementor จะจัดเก็บวิดเจ็ตของหน้าไว้ในฟิลด์ post meta ชื่อ _elementor_data และปลั๊กอินอย่าง JSM Show Post Metadata (เปิดในแท็บใหม่) จะแสดงฟิลด์นั้นใน metabox ที่ด้านล่างของตัวแก้ไขหน้า เพื่อให้คุณสามารถอ่านข้อมูลของวิดเจ็ตได้ที่นั่น
ในข้อมูลนั้น:
- widgetType คือชื่อที่จะใช้ในแอตทริบิวต์ name ของวิดเจ็ต
- คีย์ภายใต้ settings คือฟิลด์ของวิดเจ็ต คีย์ที่เก็บข้อความที่คุณต้องการแปล เช่น title คือชื่อฟิลด์ที่จะลงทะเบียน
- ฟิลด์ตัวทำซ้ำจะเก็บอาร์เรย์ของแถว คีย์ที่เก็บอาร์เรย์นั้น เช่น contents คือชื่อ "items of"

เมื่อคุณมีข้อมูลนี้แล้ว คุณสามารถดำเนินการลงทะเบียนวิดเจ็ตสำหรับการแปลได้
หากต้องการตรวจสอบงานของคุณ ให้เปิดหน้าที่ใช้วิดเจ็ตในตัวแก้ไขการแปล ฟิลด์ที่คุณลงทะเบียนจะแสดงที่นั่นตามชื่อ พร้อมกับข้อความของวิดเจ็ตที่อยู่ข้าง ๆ วิดเจ็ตที่ไม่ได้ลงทะเบียนจะไม่มีส่วนใด ๆ ในงานแปล ดังนั้นหากไม่มีข้อความใดปรากฏขึ้น แสดงว่าการลงทะเบียนยังไม่มีผล
การลงทะเบียนวิดเจ็ตแบบเรียบง่าย
วิดีโอต่อไปนี้จะแนะนำตัวอย่างการลงทะเบียนวิดเจ็ต Elementor แบบเรียบง่าย:
ตัวอย่างต่อไปนี้แสดงวิธีการลงทะเบียนวิดเจ็ตแบบเรียบง่าย วิดเจ็ตแบบเรียบง่ายในที่นี้หมายความว่าวิดเจ็ตนั้นไม่มีฟิลด์ตัวทำซ้ำ
<wpml-config> <elementor-widgets> <widget name="heading"> <conditions> <condition key="widgetType">heading</condition> </conditions> <fields> <field type="Heading" editor_type="LINE">title</field> <field type="Heading: Link URL" editor_type="LINK">link>url</field> </fields> </widget> </elementor-widgets> </wpml-config>
มาดูโครงสร้างของตัวอย่างที่ให้ไว้กัน:
- เริ่มต้นด้วยแท็ก
<elementor-widgets>ซึ่งจะบอก WPML ว่าคุณกำลังจะลงทะเบียนวิดเจ็ตของปลั๊กอินสร้างหน้าเว็บตัวใด โดยอาจเป็นหนึ่งในตัวเลือกเหล่านี้:<elementor-widgets>: ต้องใช้สิ่งนี้หากคุณใช้ Elementor, Elementor PRO หรือส่วนเสริม Elementor อื่น ๆ<beaver-builder-widgets>: ต้องใช้สิ่งนี้หากคุณใช้ Beaver Builder Lite, Beaver Builder พรีเมียม หรือส่วนเสริม Beaver Builder อื่น ๆ<siteorigin-widgets>: ต้องใช้สิ่งนี้หากคุณใช้ปลั๊กอินสร้างหน้าเว็บ SiteOrigin<cornerstone-widgets>: และต้องใช้สิ่งนี้สำหรับปลั๊กอินสร้างหน้าเว็บ Cornerstone ที่มาพร้อมกับธีม X หรือธีม PRO
- เพิ่มวิดเจ็ตของคุณ:
<widget name="widget_name">โดยที่ widget_name คือชื่อที่ใช้ลงทะเบียนวิดเจ็ตในปลั๊กอินสร้างหน้าเว็บ<conditions>(ไม่บังคับ): ภายใต้เงื่อนไข คุณสามารถเพิ่มเงื่อนไขที่มีคีย์เท่ากับชื่อวิดเจ็ตได้ ซึ่งสามารถใช้ได้เมื่อชื่อวิดเจ็ตแตกต่างจากคีย์วิดเจ็ตในข้อมูล แต่มักไม่จำเป็นต้องใช้
- เพิ่มฟิลด์ของวิดเจ็ต โดยครอบไว้ในแท็ก
<fields>:- field: ID ของฟิลด์ ซึ่งจะเหมือนกับ ID ที่ใช้เมื่อเพิ่มตัวควบคุมผ่านฟังก์ชัน Control_stack::add_control
- type (ไม่บังคับ): ประเภทของฟิลด์ นี่คือข้อความที่แสดงในตัวแก้ไขการแปลขั้นสูงหรือตัวแก้ไขการแปลแบบคลาสสิกของ WPML เพื่อช่วยให้นักแปลทราบว่ากำลังแปลฟิลด์ใดอยู่
- editor_type (ไม่บังคับ): นี่คือประเภทของฟิลด์ข้อความที่ใช้ในตัวแก้ไขการแปลแบบคลาสสิกของ WPML ค่าที่ใช้ได้คือ LINE, AREA, LINK และ VISUAL โดยจะมีค่าเริ่มต้นเป็น LINE หากไม่มีการระบุ
- key_of (ไม่บังคับ): ใช้สำหรับแท็ก <field> ที่มีอาร์เรย์อยู่ภายในแท็ก <fields-in-item> เท่านั้น
คุณสามารถใช้องค์ประกอบเหล่านี้เพื่อลงทะเบียนวิดเจ็ตแบบเรียบง่ายที่มีจำนวนฟิลด์เท่าใดก็ได้
การลงทะเบียนฟิลด์ด้วย ID ของโพสต์หรืออนุกรมวิธาน
ในส่วนด้านบน คุณได้เรียนรู้ว่าแอตทริบิวต์ type มักใช้เพื่อแสดงข้อความอธิบายในตัวแก้ไขการแปล
อย่างไรก็ตาม เมื่อฟิลด์วิดเจ็ตของคุณเก็บ ID ของโพสต์หรือ ID ของอนุกรมวิธาน (เช่น รูปภาพที่เลือก โพสต์ที่เกี่ยวข้อง หรือหมวดหมู่ที่เลือก) คุณจะใช้ค่าพิเศษที่ทริกเกอร์การแปลงอัตโนมัติ:
type="post-ids"– สำหรับฟิลด์ที่มี ID ของโพสต์type="term-ids"– สำหรับฟิลด์ที่มี ID ของอนุกรมวิธาน/คำศัพท์
เมื่อคุณใช้ค่า types เหล่านี้:
- ฟิลด์จะไม่ปรากฏในตัวแก้ไขการแปล
- WPML จะแปลง ID ให้ชี้ไปยังเนื้อหาที่แปลแล้วซึ่งสอดคล้องกันโดยอัตโนมัติ
- รองรับทั้ง ID เดี่ยวและรายการ ID ที่คั่นด้วยเครื่องหมายจุลภาค
ตัวอย่าง:
<wpml-config>
<elementor-widgets>
<widget name="the-widget-name">
<fields>
<field type="post-ids" sub-type="attachment">image_id</field>
<field type="post-ids" sub-type="post">selected_posts</field>
<field type="term-ids" sub-type="category">category_filter</field>
</fields>
</widget>
</elementor-widgets>
</wpml-config>
ในตัวอย่างนี้ แอตทริบิวต์ sub-type (ไม่บังคับ) จะระบุประเภทโพสต์หรืออนุกรมวิธานที่แน่นอนที่กำลังถูกแปลง:
- สำหรับ
type="post-ids": ใช้sub-type="attachment",sub-type="post",sub-type="page"หรือ slug ประเภทโพสต์แบบกำหนดเองของคุณ - สำหรับ
type="term-ids": ใช้sub-type="category",sub-type="post_tag"หรือ slug อนุกรมวิธานที่กำหนดเองของคุณ
การเพิ่ม sub-type จะช่วยปรับปรุงประสิทธิภาพโดยหลีกเลี่ยงการสืบค้นฐานข้อมูลเพิ่มเติมเพื่อระบุประเภทเนื้อหา
สำหรับตัวอย่างเพิ่มเติม โปรดดูไฟล์การกำหนดค่าของ Elementor (เปิดในแท็บใหม่) และค้นหา post-ids
การลงทะเบียนวิดเจ็ตที่มีฟิลด์ตัวทำซ้ำ
วิดีโอต่อไปนี้จะแนะนำตัวอย่างการลงทะเบียนวิดเจ็ต Elementor ขั้นสูงที่มีฟิลด์ตัวทำซ้ำ:
สำหรับวิดเจ็ตที่มีฟิลด์ตัวทำซ้ำ คุณต้องครอบฟิลด์ไว้ในแท็ก <fields-in-item items_of="tabs"> (โดยที่ tabs คือชื่อของวิดเจ็ตที่มีฟิลด์ที่ทำซ้ำ) ลองดูตัวอย่างนี้:
<widget name="accordion"> <fields-in-item items_of="tabs"> <field type="Accordion: Title" editor_type="LINE">tab_title</field> <field type="Accordion: Content" editor_type="VISUAL">tab_content</field> </fields-in-item> </widget>
ในบางกรณี วิดเจ็ตอาจมีฟิลด์ตัวทำซ้ำหลายฟิลด์ ลองพิจารณาโครงสร้างข้อมูลต่อไปนี้จากวิดเจ็ต Table จาก Ultimate Addons for Elementor เป็นตัวอย่าง:

หากต้องการลงทะเบียนวิดเจ็ตนี้ โปรดดูตัวอย่างต่อไปนี้:
<widget name="uael-table"> <fields-in-item items_of="table_content"> <field type="The Cell text" editor_type="LINE">cell_text</field> </fields-in-item> <fields-in-item items_of="table_headings"> <field type="The Heading text" editor_type="LINE">heading_text</field> </fields-in-item> </widget>
การลงทะเบียนวิดเจ็ตที่มีทั้งฟิลด์แบบเรียบง่ายและฟิลด์ตัวทำซ้ำ
หมายเหตุ วิดเจ็ตสามารถมีได้ทั้งสองประเภท: fields และ fields-in-item ลองดูตัวอย่างนี้สำหรับวิดเจ็ตที่ใช้ทั้งสองอย่าง:
<widget name="price-table"> <fields> <field type="Price Table: Heading" editor_type="LINE">heading</field> <!-- ... --> </fields> <fields-in-item items_of="features_list"> <field type="Price table: text" editor_type="LINE">item_text</field> </fields-in-item> </widget>
การจัดกลุ่มฟิลด์เพื่อการจัดระเบียบที่ดีขึ้น
เพื่อปรับปรุงความชัดเจนและการจัดระเบียบของการกำหนดค่า XML ของคุณ คุณสามารถเพิ่มคำนำหน้าป้ายกำกับฟิลด์ด้วยชื่อกลุ่ม ลองพิจารณาตัวอย่างของวิดเจ็ตฮอตสปอตนี้:
<widget name="hotspot">
<fields-in-item items_of="hotspot">
<field type="Hotspot: Label">hotspot_label</field>
<field type="Hotspot: URL" key_of="hotspot_link">url</field>
<field type="Hotspot: Content" editor_type="VISUAL">hotspot_tooltip_content</field>
</fields-in-item>
</widget>
ในที่นี้ แต่ละฟิลด์ภายในวิดเจ็ตฮอตสปอตจะมีคำนำหน้าด้วยป้ายกำกับ Hotspot: คำนำหน้านี้ยังปรากฏในตัวแก้ไขการแปลขั้นสูงด้วย: ฟิลด์ของวิดเจ็ตจะอยู่ในกล่อง Hotspot และแต่ละฟิลด์จะมีป้ายกำกับของตัวเอง ทำให้ง่ายต่อการระบุและแปลแต่ละฟิลด์:

การลงทะเบียนเนื้อหาของปลั๊กอินสร้างหน้าเว็บประเภทอื่น ๆ
ดูเอกสารประกอบของเราเกี่ยวกับการลงทะเบียนเนื้อหาของปลั๊กอินสร้างหน้าเว็บในไฟล์การกำหนดค่าภาษาของคุณสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการลงทะเบียนสตริง shortcode และอื่น ๆ
แหล่งข้อมูลเพิ่มเติม
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับไฟล์ wpml-config.xml โปรดไปที่คู่มือไฟล์การกำหนดค่าภาษา
สำหรับการปรับแต่งองค์ประกอบอื่น ๆ โดยใช้ไฟล์ wpml-config.xml โปรดไปที่คู่มือเพิ่มเติมของเรา:
- การลงทะเบียนเนื้อหาของปลั๊กอินสร้างหน้าเว็บสำหรับการแปล
- การแปล shortcode แบบกำหนดเองด้วย WPML
- การตั้งค่าตัวเลือกการแปลสำหรับฟิลด์ที่กำหนดเองโดยใช้ไฟล์การกำหนดค่าของ WPML
- การลงทะเบียนคำศัพท์ ประเภท และอนุกรมวิธานแบบกำหนดเองเป็นแบบแปลได้
- การทำให้บล็อก Gutenberg แบบกำหนดเองสามารถแปลได้
- การแปลข้อความที่ธีมและปลั๊กอินบันทึกไว้ใน wp_options
- การปรับแต่งตัวสลับภาษาของ WPML โดยใช้ไฟล์การกำหนดค่าของ WPML