เรียนรู้วิธีลงทะเบียนเนื้อหาของปลั๊กอินสร้างหน้าเว็บแบบกำหนดเองเพื่อการแปลโดยใช้ไฟล์ wpml-config.xml ลงทะเบียนสตริง สื่อ วิดเจ็ตของปลั๊กอินสร้างหน้าเว็บ ID ของ shortcode และอื่น ๆ
คู่มือนี้มีไว้สำหรับนักพัฒนา ที่สร้างธีมและปลั๊กอิน หรือเพิ่มโค้ดปลั๊กอินสร้างหน้าเว็บแบบกำหนดเองลงในเว็บไซต์ของตน
หากคุณใช้ปลั๊กอินสร้างหน้าเว็บของบุคคลที่สามและไม่สามารถแปลวิดเจ็ตแบบกำหนดเองบนเว็บไซต์ของคุณได้ โปรดติดต่อฝ่ายสนับสนุนของ WPML
ต้องการสร้างไฟล์ wpml-config.xml หรือไม่ ไปที่คู่มือทีละขั้นตอนของเราสำหรับการสร้างไฟล์การกำหนดค่าโดยอัตโนมัติโดยใช้ปลั๊กอิน Multilingual Tools
การแปลสตริง
ลองพิจารณาตัวอย่างที่คุณมีตัวคั่นข้อความที่เพิ่มลงในหน้าโดยใช้ Visual Composer ตัวคั่นนั้นมีชื่อ และ shortcode ของตัวคั่นจะมีลักษณะดังนี้:
[vc_text_separator title="Separator Title"]
ในการแปลชื่อของตัวคั่นข้อความนี้ คุณต้องเพิ่มโค้ดสองสามบรรทัดลงในไฟล์ wpml-config.xml ของคุณ ด้วยวิธีนี้ WPML จะ "รู้" ว่าชื่อของตัวคั่นนั้นจำเป็นต้องได้รับการแปล
โค้ดต่อไปนี้เป็นตัวอย่างของสิ่งที่คุณต้องเพิ่มลงในไฟล์ wpml-config.xml ในกรณีนี้
ตัวอย่างการเพิ่ม shortcode ของปลั๊กอินสร้างหน้าเว็บลงในไฟล์ wpml-config.xml
<wpml-config>
<shortcodes>
<shortcode>
<tag>vc_text_separator</tag>
<attributes>
<attribute>title</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>มาดูโครงสร้างของตัวอย่างด้านบนกัน:
- เริ่มต้นด้วยแท็ก shortcodes shortcode ใด ๆ ในเว็บไซต์ของคุณที่จำเป็นต้องได้รับการแปลควรอยู่ภายใต้แท็กนี้
- ใช้แท็ก shortcode เพื่อครอบแท็กทั้งหมดที่เป็นของ shortcode เดียว
- ใช้แท็กที่เรียกว่า tag เพื่อกำหนดชื่อของ shortcode ในกรณีนี้คือ vc_text_separator หากต้องการ คุณสามารถเพิ่มป้ายกำกับแบบกำหนดเองที่เป็นตัวเลือกให้กับแท็กได้ ป้ายกำกับเหล่านี้จะแสดงถัดจากข้อความทั้งในตัวแก้ไขการแปลขั้นสูงและตัวแก้ไขการแปลแบบคลาสสิก ไฟล์ XLIFF ที่ส่งออกจะรวมป้ายกำกับเหล่านี้ด้วย ดูตัวอย่างด้านล่างสำหรับวิธีเพิ่มป้ายกำกับให้กับแท็กและแอตทริบิวต์
- shortcode สามารถมีแอตทริบิวต์ได้ตั้งแต่หนึ่งรายการขึ้นไป ดังนั้นคุณต้องครอบด้วยแท็ก attributes (พหูพจน์) และใช้แท็ก attribute (เอกพจน์) เพื่อกำหนดชื่อของแต่ละแอตทริบิวต์
ปลั๊กอินสร้างหน้าเว็บ (ในบางครั้ง) จะรวมองค์ประกอบการออกแบบที่มีแอตทริบิวต์ลิงก์
คุณสามารถทำให้ลิงก์ภายในชี้ไปยังเวอร์ชันที่แปลแล้วของโพสต์นั้นโดยอัตโนมัติโดยใช้ตัวเลือกลิงก์: type="link"
คุณสามารถใช้แอตทริบิวต์ encoding กับส่วนนี้ได้ โดยจะจัดการการเข้ารหัสพิเศษที่ปลั๊กอินสร้างหน้าเว็บต่าง ๆ ใช้ โดยปกติแล้วแอตทริบิวต์ encoding จะเจาะจงกับปลั๊กอินสร้างหน้าเว็บที่คุณใช้ ซึ่งยอมรับค่าต่อไปนี้:
- base64 – shortcode HTML ดิบของ Visual Composer shortcode จะเก็บ HTML เป็นสตริง base64
- vc_link – การจัดรูปแบบลิงก์พิเศษสำหรับ Visual Composer
- vc_values – การเข้ารหัส Visual Composer พิเศษสำหรับค่าในวิดเจ็ต progress-bar, pie-chart และ line-chart
- av_link – การจัดรูปแบบลิงก์พิเศษสำหรับ Enfold
- allow_html_tags – โดยปกติแท็ก HTML จะถูกตัดออกจากแอตทริบิวต์ shortcode ตั้งค่า encoding เป็น allow_html_tags หากแอตทริบิวต์ shortcode ควรอนุญาตแท็ก HTML ใช้สิ่งนี้ด้วยความระมัดระวัง เนื่องจากการอนุญาตแท็ก HTML ในบางสถานการณ์อาจทำให้การจัดรูปแบบยุ่งเหยิงและอาจเป็นปัญหาด้านความปลอดภัย
ตัวอย่างการเพิ่มแอตทริบิวต์ลิงก์ของ shortcode: type="link"
<wpml-config>
<shortcodes>
<shortcode>
<tag>av_button</tag>
<attributes>
<attribute>label</attribute>
<attribute type="link" encoding="av_link">link</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>หากคุณกำลังคิดที่จะใช้ shortcode แบบ urlencoded อย่าลืมอ่านหน้าเกี่ยวกับการแปล shortcode แบบ urlencoded
ตัวอย่างการเพิ่มป้ายกำกับแท็กและแอตทริบิวต์
<wpml-config>
<shortcodes>
<shortcode>
<tag label="My shortcode label">my_shortcode</tag>
<attributes>
<attribute label="Shortcode title">title</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>การเพิ่มป้ายกำกับลงในแท็กและแอตทริบิวต์ช่วยให้คุณสามารถแสดงป้ายกำกับแบบกำหนดเองใน ตัวแก้ไขการแปลขั้นสูง หรือ ตัวแก้ไขการแปลแบบคลาสสิก สิ่งนี้สามารถช่วยให้นักแปลเข้าใจบริบทของสตริงได้ดีขึ้น
จัดกลุ่มฟิลด์เพื่อการจัดระเบียบที่ดีขึ้น
เพื่อปรับปรุงความชัดเจนและการจัดระเบียบของการกำหนดค่า XML ของคุณ คุณสามารถใส่ชื่อกลุ่มไว้หน้าป้ายกำกับฟิลด์ได้ ลองพิจารณาตัวอย่างของปุ่ม CTA นี้:
<wpml-config>
<shortcodes>
<shortcode>
<tag label="Call To Action: Content">et_pb_cta</tag>
<attributes>
<attribute label="Call To Action: Title">title</attribute>
<attribute label="Call To Action: Button Text">button_text</attribute>
<attribute label="Call To Action: Button URL" type="link">button_url</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>
ในที่นี้ แต่ละแอตทริบิวต์ภายใน shortcode et_pb_cta จะนำหน้าด้วยป้ายกำกับ Call To Action: ซึ่งจะแสดงใน ตัวแก้ไขการแปลขั้นสูง ด้วย:

การแปลสื่อ
คุณสามารถใช้ การแปลสื่อ ของ WPML เพื่อใช้รูปภาพที่แตกต่างกันสำหรับภาษาต่าง ๆ ในเนื้อหาของปลั๊กอินสร้างหน้าเว็บ สิ่งนี้ทำได้โดยการแปลง ID รูปภาพและ URL รูปภาพ คุณต้อง "บอก" ปลั๊กอินสร้างหน้าเว็บที่ใช้ shortcode ว่าจะทำการแปลงนี้อย่างไร โค้ดต่อไปนี้เป็นตัวอย่างของสิ่งที่คุณต้องเพิ่มลงในไฟล์ wpml-config.xml ในกรณีนี้
ตัวอย่างการเพิ่ม shortcode ของปลั๊กอินสร้างหน้าเว็บลงในไฟล์ wpml-config.xml สำหรับการแปลรูปภาพ
<wpml-config>
<shortcodes>
<shortcode>
<!-- Convert media IDs in `gallery_ids` attribute, and ignore the shortcode content -->
<tag ignore-content="1">et_pb_gallery</tag>
<attributes>
<attribute type="media-ids">gallery_ids</attribute>
<attributes>
</shortcode>
<shortcode>
<!-- Convert the media URL in the content, translate some string attributes for `title` and `alt`, convert media URL in `src` attribute -->
<tag type="media-url">et_pb_image</tag>
<attributes>
<attribute>title_text</attribute>
<attribute>alt</attribute>
<attribute type="media-url">src</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>คุณสามารถใช้ค่าต่อไปนี้:
- ignore-content – คุณสามารถใช้ภายในองค์ประกอบ tag ค่านี้เป็นตัวเลือกและสามารถเป็น 0 หรือ 1 ก็ได้ คุณสามารถใช้แอตทริบิวต์นี้เพื่อให้เข้ากันได้กับเวอร์ชันเก่าสำหรับ shortcode สื่อใหม่ หากตั้งค่าเป็น 1 เนื้อหา shortcode จะไม่ได้รับการประมวลผล
- type – คุณสามารถใช้ภายในองค์ประกอบ tag คุณยังสามารถใช้เนื้อหา shortcode ที่มี URL สื่อเป็นค่าตัวเลือกภายใน media-url ได้
- type – คุณยังสามารถใช้ภายในองค์ประกอบ attribute ได้เช่นกัน ในกรณีนี้ สามารถมีค่าตัวเลือกใดค่าหนึ่งต่อไปนี้:
- media-ids – รายการ ID สื่อที่คั่นด้วยเครื่องหมายจุลภาค
- media-url – URL ของสื่อ
- link – ชี้ไปยังหน้าอื่นบนเว็บไซต์ และ WPML จะแปลงเป็น URL ของหน้าที่แปลแล้วโดยอัตโนมัติ
การแปลสื่อในแอตทริบิวต์ของบล็อก
คุณยังสามารถใช้ประเภทแอตทริบิวต์ media-url และ media-ids กับบล็อก Gutenberg เพื่อแปลสื่อ เช่น รูปภาพพื้นหลัง สิ่งนี้ทำงานคล้ายกับ shortcode แต่ใช้องค์ประกอบ <gutenberg-block> ที่มีองค์ประกอบ <key> ซ้อนกันเพื่อกำหนด type="media-url" และ type="media-ids"
การใช้องค์ประกอบนี้ช่วยให้ส่วนเสริม การแปลสื่อ ของ WPML สามารถแปลรูปภาพพื้นหลังได้
สิ่งนี้ทำงานได้กับทั้งบล็อก Gutenberg และ Divi 5 โดย Divi เวอร์ชันนี้ใช้บล็อกเพื่อจัดเก็บเนื้อหา ดังนั้นองค์ประกอบ <gutenberg-block> จึงสามารถใช้เพื่อเพิ่มการแปลสื่อได้
นี่คือตัวอย่างการเพิ่มการแปลสื่อสำหรับแอตทริบิวต์ของบล็อก Gutenberg:
<wpml-config>
<gutenberg-blocks>
<gutenberg-block type="divi/section" translate="1">
<key name="module">
<key name="decoration">
<key name="background">
<key name="desktop">
<key name="value">
<key name="image">
<key name="url" type="media-url" />
</key>
</key>
</key>
</key>
</key>
</key>
</gutenberg-block>
</gutenberg-blocks>
</wpml-config>
การแปลวิดเจ็ตของปลั๊กอินสร้างหน้าเว็บ
WPML ช่วยให้คุณสามารถลงทะเบียนวิดเจ็ตของปลั๊กอินสร้างหน้าเว็บภายในไฟล์การกำหนดค่าภาษาของคุณ สำหรับข้อมูลโดยละเอียด โปรดดูหน้าเอกสารประกอบของเราเกี่ยวกับวิธีลงทะเบียนวิดเจ็ตของปลั๊กอินสร้างหน้าเว็บเพื่อการแปล
แปลง ID ของ shortcode โดยอัตโนมัติ
ตั้งแต่ WPML 4.5.9 เป็นต้นไป คุณสามารถประกาศ ID ของโพสต์หรือคำศัพท์ในอนุกรมวิธานที่อยู่ในแอตทริบิวต์ของ shortcode ได้ จากนั้น ID เหล่านี้จะสามารถแปลงได้โดยอัตโนมัติที่ส่วนหน้าของเว็บไซต์ของคุณ
ตั้งแต่ WPML 4.8 เป็นต้นไป ตรรกะเดียวกันนี้จะขยายไปยังออบเจ็กต์ ID ที่จัดเก็บไว้ในข้อความผู้ดูแลระบบ ตลอดจนID ในฟิลด์ที่กำหนดเองของโพสต์และฟิลด์คำศัพท์ในอนุกรมวิธานที่กำหนดเอง
ตัวอย่างเช่น ลองพิจารณา shortcode ต่อไปนี้:
[foo_product_list product_ids="12,34,56"]
คุณสามารถประกาศว่าแอตทริบิวต์ product_ids กำลังเก็บ ID ของโพสต์ด้วยการกำหนดค่าต่อไปนี้:
การประกาศว่าแอตทริบิวต์ product_ids กำลังเก็บ ID ของโพสต์
<shortcode>
<tag ignore-content="1">foo_product_list</tag>
<attributes>
<attribute type="post-ids" sub-type="product">product</attribute>
</attributes>
</shortcode>ที่ส่วนหน้า shortcode จะแปลงเป็นสิ่งต่อไปนี้โดยอัตโนมัติ:
[foo_product_list product_ids="13,35,57"]
คุณสามารถใช้แอตทริบิวต์การกำหนดค่าต่อไปนี้:
- type – เป็น post-ids หรือ taxonomy-ids
- sub-type (ตัวเลือก) – เอนทิตีเฉพาะของ type หากทราบอยู่แล้ว ตัวอย่างเช่น product สำหรับประเภทโพสต์แบบกำหนดเอง Product ที่มาจาก WooCommerce หากไม่ได้กำหนดไว้ เอนทิตีเฉพาะจะถูกคาดเดา
การแปลง ID นั้นมีความอเนกประสงค์และพยายามปรับให้เข้ากับรูปแบบ ID ที่เป็นไปได้ส่วนใหญ่ (ID เดี่ยว, รายการ ID, อาร์เรย์ที่ทำซีเรียลไลซ์, อาร์เรย์ที่เข้ารหัส JSON)
แหล่งข้อมูลเพิ่มเติม
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับไฟล์ wpml-config.xml โปรดไปที่คู่มือไฟล์การกำหนดค่าภาษา
สำหรับการปรับแต่งองค์ประกอบอื่น ๆ โดยใช้ไฟล์ wpml-config.xml โปรดไปที่คู่มือเพิ่มเติมของเรา:
- ลงทะเบียนวิดเจ็ตของปลั๊กอินสร้างหน้าเว็บแบบกำหนดเองเพื่อการแปล
- แปล shortcode แบบกำหนดเองด้วย WPML
- ตั้งค่าตัวเลือกการแปลสำหรับฟิลด์ที่กำหนดเองโดยใช้ไฟล์การกำหนดค่าของ WPML
- ลงทะเบียนคำศัพท์ ประเภท & อนุกรมวิธานแบบกำหนดเองให้สามารถแปลได้
- ทำให้บล็อก Gutenberg แบบกำหนดเองสามารถแปลได้
- แปลข้อความที่ธีมและปลั๊กอินบันทึกไว้ใน wp_options
- ปรับแต่งตัวสลับภาษา WPML โดยใช้ไฟล์การกำหนดค่าของ WPML