WPML

เรียนรู้วิธีกำหนดการตั้งค่าการแปลสำหรับฟิลด์กำหนดเองโดยใช้ไฟล์ 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_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 โปรดไปที่คู่มือเพิ่มเติมของเรา:

เขียนโดย Amir · อัปเดตล่าสุด 29 มกราคม 2026