เรียนรู้วิธีกำหนดการตั้งค่าการแปลสำหรับฟิลด์กำหนดเองโดยใช้ไฟล์ wpml-config.xml ตั้งค่าตัวเลือกการแปล เช่น แปลและคัดลอก และแทรกแอตทริบิวต์เพิ่มเติม
การตั้งค่าตัวเลือกการแปลสำหรับฟิลด์กำหนดเอง
WPML มีตัวเลือกการแปลสี่แบบสำหรับฟิลด์กำหนดเอง:
| การดำเนินการ | คำอธิบาย | มองเห็นได้ใน ATE หรือไม่ |
|---|---|---|
| แปล | เปิดใช้งานค่าฟิลด์กำหนดเองสำหรับการแปล | ใช่ |
| คัดลอก | คัดลอกค่าฟิลด์กำหนดเองจากภาษาเริ่มต้นไปยังภาษารองโดยซิงค์ทั้งสองภาษาให้ตรงกัน | ไม่ |
| คัดลอกครั้งเดียว | คัดลอกค่าฟิลด์กำหนดเองจากภาษาเริ่มต้นไปยังภาษารองโดยไม่ซิงค์ทั้งสองภาษา | ไม่ |
| ละเว้น | หลีกเลี่ยงการคัดลอกค่าฟิลด์กำหนดเองไปยังภาษารอง | ไม่ |
ตัวอย่างการเพิ่มฟิลด์กำหนดเองลงในไฟล์การกำหนดค่าภาษา
<wpml-config>
<custom-fields>
<custom-field action="copy">quantity</custom-field>
<custom-field action="translate">custom-title</custom-field>
<custom-field action="copy">weight</custom-field>
<custom-field action="copy-once">bg-color</custom-field>
<custom-field action="translate">custom-description</custom-field>
<custom-field action="ignore">date-added</custom-field>
</custom-fields>
</wpml-config>การเพิ่มแอตทริบิวต์สำหรับฟิลด์กำหนดเอง
แอตทริบิวต์ Label และ Group
WPML ให้คุณเพิ่มแอตทริบิวต์ที่ปรากฏใน ตัวแก้ไขการแปลขั้นสูง ซึ่งรวมถึง:
- style – แสดงบรรทัดเดียว (line) พื้นที่ข้อความ (textarea) หรือ WYSIWYG (visual)
- label – แสดงป้ายกำกับถัดจากฟิลด์
- group – ระบุกลุ่มที่ฟิลด์กำหนดเองสังกัดอยู่ เมื่อฟิลด์อยู่ในกลุ่ม:
- ฟิลด์จะถูกลบออกจากส่วนฟิลด์กำหนดเอง
- ฟิลด์จะถูกเพิ่มลงในส่วนของกลุ่มที่เกี่ยวข้อง
ตัวอย่างแอตทริบิวต์ของฟิลด์กำหนดเอง
<wpml-config>
<custom-fields>
<custom-field action="translate" style="line" label="Title">custom-title</custom-field>
<custom-field action="translate" style="textarea" label="Description">custom-description</custom-field>
<custom-field action="translate" style="visual" label="Some content" group="Custom group">custom-wysiwyg</custom-field>
</custom-fields>
</wpml-config>นี่คือลักษณะของแอตทริบิวต์เหล่านี้ใน ตัวแก้ไขการแปลขั้นสูง:

แอตทริบิวต์ Encode
คุณยังสามารถเพิ่มแอตทริบิวต์ encode ที่เป็นทางเลือกเพื่อเปลี่ยนการเข้ารหัสจากค่าเริ่มต้น (ไม่มีการเข้ารหัส) ได้อีกด้วย แอตทริบิวต์ Encoding รองรับค่าต่อไปนี้:
- json
- base64
- urlencode
หากคุณต้องการใช้การเข้ารหัสหลายแบบ ให้คั่นค่าด้วยเครื่องหมายจุลภาค:
ตัวอย่างการเพิ่มฟิลด์กำหนดเองลงในไฟล์การกำหนดค่าภาษาเพื่อเปลี่ยนการเข้ารหัส
<wpml-config>
<custom-fields>
<custom-field action="translate" encoding="json,base64">keywords</custom-field>
</custom-fields>
</wpml-config>แอตทริบิวต์ Translate Link
หากฟิลด์กำหนดเองของคุณมีลิงก์ คุณสามารถใช้แอตทริบิวต์ translate_link_target เพื่อบังคับให้ WPML ตรวจสอบและปรับลิงก์ในฟิลด์กำหนดเอง เพื่อให้แอตทริบิวต์นี้ทำงานได้ ตรวจสอบให้แน่ใจว่าลิงก์ถูกครอบด้วยแท็ก <a>
ตัวอย่างการบังคับให้ WPML ปรับลิงก์ในฟิลด์กำหนดเอง
<wpml-config>
<custom-fields>
<custom-field action="translate" translate_link_target="1">name_of_the_acf_field</custom-field>
</custom-fields>
</wpml-config>WPML จะแปลคีย์ย่อยทั้งหมดในฟิลด์กำหนดเองโดยค่าเริ่มต้น หากต้องการข้ามขั้นตอนนี้ ให้ระบุคีย์ย่อยที่ควรแปล
ตัวอย่างโค้ดสำหรับการแปลคีย์ย่อยในฟิลด์กำหนดเอง
<wpml-config>
<custom-fields>
<custom-field action="translate">with_attributes</custom-field>
<custom-field action="translate">with_deep_attributes</custom-field>
<custom-field action="translate">no_attributes</custom-field>
</custom-fields>
<custom-fields-texts>
<key name="with_attributes">
<key name="attribute1" />
<key name="attribute2" />
</key>
<key name="with_deep_attributes">
<key name="attribute1" />
<key name="attribute2">
<key name="level1">
<key name="level2">
</key>
</key>
</key>
</key>
</custom-fields-texts>
</wpml-config>ไวลด์การ์ด
คุณยังสามารถใช้ไวลด์การ์ดในลักษณะเดียวกับที่ใช้สำหรับข้อความผู้ดูแลระบบ:
- จับคู่ฟิลด์ย่อยทั้งหมดที่ขึ้นต้นด้วย title- โดยใช้โค้ด:
<key name="title-*" /> - จับคู่ฟิลด์ย่อยทั้งหมดและโดยทั่วไปจะใช้เพื่อจับคู่ดัชนีอาร์เรย์โดยใช้โค้ด:
<key name="*" /> - เพื่อให้ได้
[{"title":"First title"},{"title":"Second title"}]ให้ใช้โค้ด
ตัวอย่างไฟล์การกำหนดค่าที่มีไวลด์การ์ด
<wpml-config>
<custom-fields-texts>
<key name="key-name">
<key name="*">
<key name="title" />
</key>
</key>
</custom-fields-texts>
</wpml-config>การแปลง ID ในฟิลด์กำหนดเองของโพสต์โดยอัตโนมัติ
ตั้งแต่ WPML 4.8 เป็นต้นไป คุณสามารถประกาศ ID ที่อยู่ในฟิลด์กำหนดเองของโพสต์ได้ WPML จะแทนที่ ID เหล่านี้ด้วยเวอร์ชันที่แปลแล้วในส่วนหน้า
คุณสามารถทำได้เฉพาะเมื่อตัวเลือกการแปลคือ คัดลอก (นั่นคือ เมื่อใช้ <custom-field action="copy">) เท่านั้น
ในส่วน custom-fields ของไฟล์ wpml-config.xml ของคุณ ให้ใช้:
- type เพื่อระบุว่าอ็อบเจ็กต์ใดถูกอ้างอิง เช่น post-ids
- sub-type (ไม่บังคับ) เมื่อคุณต้องการประกาศ slug ของประเภทโพสต์
WPML สามารถตรวจหาและแปลง ID ในรูปแบบเหล่านี้ได้:
- ID เดียว (เช่น 123)
- รายการ ID ที่คั่นด้วยเครื่องหมายจุลภาค (เช่น "123,456,789")
- อาร์เรย์ (และอาร์เรย์ที่เข้ารหัส) ของ ID (เช่น [123,456,789])
ตัวอย่างการประกาศ ID ในฟิลด์กำหนดเอง
<custom-fields> <custom-field action="copy" type="post-ids" sub-type="product">custom_field_with_id</custom-field> </custom-fields>
เมื่อ ID ซ้อนอยู่ในส่วน custom-fields-texts ในระดับย่อย WPML จะตรวจหาและแปลง ID เหล่านั้นโดยไม่คำนึงถึงการตั้งค่าการแปลฟิลด์ (คัดลอก แปล ฯลฯ)
ตัวอย่างการประกาศ ID ในฟิลด์กำหนดเองที่ซ้อนกัน
<wpml-config>
<custom-fields-texts>
<key name="custom_field_with_nested_ids">
<key name="custom_field_nested_key_with_ids" type="post-ids" sub-type="product" />
<key name="custom_field_nested_key_with_ids_with_wildcard_*" type="post-ids" sub-type="product" />
<key name="custom_field_nested_key_with_subkey">
<key name="custom_field_nested_key_with_subkey_with_ids" type="post-ids" sub-type="product" />
</key>
</key>
</custom-fields-texts>
</wpml-config>ด้วยการใช้ไวยากรณ์ type และ sub-type เดียวกัน คุณสามารถประกาศ ID ในข้อความผู้ดูแลระบบ (ตาราง wp_options) ได้
การตั้งค่าตัวเลือกการแปลสำหรับฟิลด์เทอมของอนุกรมวิธานที่กำหนดเอง
ในการแปลฟิลด์กำหนดเองของเทอมอนุกรมวิธาน คุณต้องระบุชื่อฟิลด์และการดำเนินการที่ WPML ควรทำ: แปล คัดลอก คัดลอกครั้งเดียว ละเว้น
ซ้อนมาร์กอัปนี้ไว้ใต้แท็ก wpml-config
คุณสามารถตั้งค่าตัวเลือกการแปลต่อไปนี้สำหรับฟิลด์เทอมที่กำหนดเอง:
- translate: อนุญาตให้ผู้ใช้ของคุณแปลค่าของเทอมที่กำหนดเอง เทอมเหล่านี้จะปรากฏบนหน้าจอ ตัวแก้ไขการแปล และสามารถแปลด้วยตนเองหรือโดยอัตโนมัติ หรือส่งไปยังนักแปลคนอื่นได้
- copy: คัดลอกค่าเทอมที่กำหนดเองของภาษาเริ่มต้นไปยังภาษารอง ซึ่งหมายความว่าการอัปเดตค่าเทอมที่กำหนดเองของภาษาเริ่มต้นจะถูกคัดลอกไปยังภาษารองเสมอ เทอมที่กำหนดเองที่ตั้งค่าเป็น copy จะไม่แสดงบนหน้าจอ ตัวแก้ไขการแปล
- copy-once: คัดลอกค่าของเทอมที่กำหนดเองไปยังภาษารองในกระบวนการแปลเริ่มต้น เทอมที่กำหนดเองที่ใช้การดำเนินการ copy-once จะไม่ปรากฏบนหน้าจอ ตัวแก้ไขการแปล อย่างไรก็ตาม ผู้ใช้สามารถเปลี่ยนค่าเทอมที่กำหนดเองของภาษารองให้แตกต่างจากภาษาเริ่มต้นได้โดยใช้หน้าจอแก้ไขโพสต์
- ignore: ละเว้นเทอมที่กำหนดเองไม่ให้ถูกคัดลอกไปยังภาษารอง
ตัวอย่างการเพิ่มเทอมที่กำหนดเองลงในไฟล์การกำหนดค่าภาษา
<wpml-config>
<custom-term-fields>
<custom-term-field action="copy">term_meta_A</custom-term-field>
<custom-term-field action="translate">term_meta_B</custom-term-field>
<custom-term-field action="ignore">term_meta_C</custom-term-field>
<custom-term-field action="copy-once">term_meta_D</custom-term-field>
</custom-term-fields>
</wpml-config>การแปลง ID ที่จัดเก็บในฟิลด์กำหนดเองของเทอมอนุกรมวิธานโดยอัตโนมัติ
คุณสามารถทำได้เฉพาะเมื่อฟิลด์ถูกตั้งค่าเป็น คัดลอก (นั่นคือ เมื่อใช้ <custom-term-field action="copy">) เท่านั้น
เช่นเดียวกับฟิลด์โพสต์กำหนดเอง คุณสามารถประกาศ ID อ็อบเจ็กต์ที่อยู่ในฟิลด์กำหนดเองของอนุกรมวิธานได้ จากนั้น WPML จะแปลงเป็นเวอร์ชันที่แปลแล้วโดยอัตโนมัติ
ในส่วน custom-term-fields ให้ใช้:
- type เพื่อระบุว่าอ็อบเจ็กต์ใดถูกอ้างอิง เช่น post-ids หรือ taxonomy-ids
- sub-type (ไม่บังคับ) เมื่อคุณต้องการประกาศเอนทิตีที่เฉพาะเจาะจง
ตัวอย่างการประกาศ ID ในฟิลด์เทอมที่กำหนดเอง
<wpml-config>
<custom-term-fields>
<custom-term-field action="copy" type="post-ids" sub-type="product">custom_term_field_with_id</custom-term-field>
</custom-term-fields>
</wpml-config>แหล่งข้อมูลเพิ่มเติม
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับไฟล์ wpml-config.xml โปรดไปที่คู่มือไฟล์การกำหนดค่าภาษา
สำหรับการปรับแต่งองค์ประกอบอื่น ๆ โดยใช้ไฟล์ wpml-config.xml โปรดไปที่คู่มือเพิ่มเติมของเรา:
- การแปล shortcode ที่กำหนดเองด้วย WPML
- การลงทะเบียนเนื้อหาของปลั๊กอินสร้างหน้าเว็บสำหรับการแปล
- การลงทะเบียนวิดเจ็ตปลั๊กอินสร้างหน้าเว็บที่กำหนดเองสำหรับการแปล
- การลงทะเบียนเทอม Types และอนุกรมวิธานที่กำหนดเองให้แปลได้
- การทำให้บล็อก Gutenberg ที่กำหนดเองแปลได้
- การแปลข้อความที่ธีมและปลั๊กอินบันทึกไว้ใน wp_options
- การปรับแต่งตัวสลับภาษา WPML โดยใช้ไฟล์การกำหนดค่า WPML