WPML

ค้นพบรายการค่าคงที่และฮุกของ 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

เขียนโดย Amir · อัปเดตล่าสุด 30 มิถุนายน 2026