ค้นพบรายการค่าคงที่และฮุกของ ACF Multilingual (ACFML) ทั้งหมด พร้อมตัวอย่างการใช้งานในโค้ดของคุณ
ฮุกของ ACF Multilingual (ACFML)
acfml_should_translate_acf_entity
ฮุกนี้ช่วยให้คุณสามารถกำหนดได้ว่าควรแปลฟิลด์หรือกลุ่มฟิลด์ของ ACF หรือไม่ การใช้ฟิลเตอร์นี้จะทำให้คุณสามารถข้ามการแปลฟิลด์หรือกลุ่มที่ระบุได้ตามตรรกะแบบกำหนดเองของคุณ
ประเภท: ฟิลเตอร์
ความพร้อมใช้งาน: ACFML 2.1.4
พารามิเตอร์:
$shouldTranslate
(bool) (จำเป็น) ระบุว่าควรแปลฟิลด์หรือกลุ่มฟิลด์หรือไม่ ค่าเริ่มต้นคือ true
$entity
(array) (จำเป็น) เอนทิตีที่กำลังถูกแปล ซึ่งอาจเป็นอาร์เรย์ของฟิลด์หรืออาร์เรย์ของกลุ่ม
$entityType
(string) (ไม่บังคับ) ประเภทของเอนทิตีที่กำลังถูกแปล สามารถเป็น 'field' หรือ 'group'
ตัวอย่างการใช้งานฮุก:
add_filter( 'acfml_should_translate_acf_entity', function( $shouldTranslate, $entity, $entityType ) {
if ( 'field' === $entityType ) {
return false;
}
return $shouldTranslate;
} );
acfml_field_group_mode_field_translation_preference
ฟิลเตอร์นี้ช่วยให้คุณสามารถแทนที่การตั้งค่าการแปลเริ่มต้นสำหรับฟิลด์ ACF เมื่อกลุ่มฟิลด์ใช้โหมด ฟิลด์เดียวกัน หรือ ฟิลด์ที่แตกต่างกัน
หมายเหตุ: ฟิลเตอร์นี้จะเปลี่ยนเฉพาะการตั้งค่าการแปลเริ่มต้นเท่านั้น ไม่ได้เปลี่ยนการตั้งค่าที่บันทึกไว้ของแต่ละฟิลด์ หากคุณแก้ไขค่าเริ่มต้น คุณต้องบันทึกกลุ่มฟิลด์ที่ได้รับผลกระทบอีกครั้งเพื่อให้ค่าเริ่มต้นใหม่มีผล
ประเภท: ฟิลเตอร์
ความพร้อมใช้งาน: ACFML 2.0.0
พารามิเตอร์:
$fieldTranslationPreference (int) (จำเป็น) การตั้งค่าการแปลเริ่มต้นสำหรับฟิลด์ ค่าที่เป็นไปได้:
0— ไม่ต้องแปล WPML จะละเว้นฟิลด์นี้ทั้งหมด1— คัดลอก ค่าของฟิลด์จะถูกคัดลอกไปยังทุกภาษาและซิงค์ให้ตรงกันเสมอ2— แปล ค่าของฟิลด์จะเปิดให้สามารถแปลได้3— คัดลอกครั้งเดียว ค่าของฟิลด์จะถูกคัดลอกไปยังทุกภาษาเพียงครั้งเดียว หลังจากนั้นจะสามารถแก้ไขในแต่ละภาษาได้อย่างเป็นอิสระ
$groupMode (string) (จำเป็น) โหมดการแปลของกลุ่มฟิลด์ ค่าที่เป็นไปได้: translation หรือ localization
$field (array) (จำเป็น) อาร์เรย์ของฟิลด์ ACF
ตัวอย่างการใช้งานฮุก:
add_filter( 'acfml_field_group_mode_field_translation_preference', function( $fieldTranslationPreference, $groupMode, $field ) {
$fieldType = $field['type'] ?? null;
if ( 'link' === $fieldType ) {
return 2; // WPML_TRANSLATE_CUSTOM_FIELD
}
return $fieldTranslationPreference;
}, 10, 3 );
ตัวอย่างนี้บังคับให้ประเภทฟิลด์ link สามารถแปลได้ ซึ่งจะแทนที่การตั้งค่าเริ่มต้นที่เป็น copy หรือ copy_once
ค่าคงที่ของ ACF Multilingual (ACFML)
ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS
ตั้งแต่ ACFML 2.1.5 เป็นต้นไป คุณสามารถใช้ค่าคงที่นี้เพื่อรวมสตริงของกลุ่มฟิลด์ไว้ในงานแปลโพสต์ได้
หากต้องการเปิดใช้งาน ให้เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ wp-config.php ของคุณ:
define( 'ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS', false );
หมายเหตุ:
- หากคุณสร้างงานแปลก่อนที่จะเพิ่มโค้ดนี้ลงในไฟล์ wp-config.php ของคุณ ให้ยกเลิกงานนั้นแล้วสร้างใหม่
- คุณสามารถส่งป้ายกำกับฟิลด์และตัวเลือกไปแปลผ่าน แดชบอร์ดการแปล ได้หากจำเป็น
ACFML_HIDE_FIELD_ANNOTATIONS
ในแต่ละฟิลด์ที่แปลแล้ว ACF Multilingual จะเพิ่มข้อมูลเกี่ยวกับค่าในภาษาต้นฉบับลงไป
หากต้องการลบข้อมูลนี้ออกจากฟิลด์ที่แปลแล้ว คุณสามารถเพิ่มบรรทัดต่อไปนี้ลงในไฟล์ wp-config.php ของเว็บไซต์คุณ:
define( 'ACFML_HIDE_FIELD_ANNOTATIONS', true );
ACFML_REPEATER_SYNC_DEFAULT
คุณสามารถใช้ค่าคงที่นี้เพื่อตั้งค่าเริ่มต้นของคุณสมบัติการซิงค์ฟิลด์ Repeater ได้ ค่าเริ่มต้นจะถูกตั้งเป็น true ซึ่งหมายความว่าฟิลด์ Repeater จะถูกซิงค์ข้ามการแปลโดยอัตโนมัติ หากคุณตั้งค่าคงที่นี้เป็น false การซิงค์ฟิลด์ Repeater จะถูกปิดการใช้งาน
คุณสามารถแทนที่ค่าเริ่มต้นของ ACFML_REPEATER_SYNC_DEFAULT ได้ในไฟล์ functions.php ของธีมของคุณ:
define('ACFML_REPEATER_SYNC_DEFAULT', false);
ACFML_SCAN_LOCAL_FIELDS
การตั้งค่าคงที่นี้เป็น false จะปิดการใช้งานการสแกนไฟล์ JSON สำหรับฟิลด์แบบโลคัล
ซึ่งหมายความว่าหากคุณเปลี่ยนการตั้งค่าการแปลในฟิลด์แบบโลคัล การตั้งค่าเหล่านั้นจะไม่ซิงค์ไปยังฐานข้อมูล คุณจะต้องตั้งค่าการแปลสำหรับฟิลด์ต่าง ๆ ด้วยตนเอง
สำหรับข้อมูลเพิ่มเติม โปรดดูเอกสารคู่มืออย่างเป็นทางการของ ACF เกี่ยวกับการใช้ Local JSON