WPML

ค้นพบรายการค่าคงที่และฮุกของ ACF Multilingual (ACFML) ทั้งหมด พร้อมตัวอย่างการใช้งานในโค้ดของคุณ

ฮุกของ ACF Multilingual (ACFML)

acfml_should_translate_acf_entity

ฟิลเตอร์นี้จะตัดสินใจว่า ACFML ควรแสดงป้ายกำกับที่แปลแล้วของฟิลด์หรือกลุ่มฟิลด์ ACF หรือไม่ ส่งคืนค่า false เพื่อแสดงป้ายกำกับต้นฉบับในทุกภาษา ค่าของฟิลด์จะไม่เปลี่ยนแปลง

ประเภท: ฟิลเตอร์

ความพร้อมใช้งาน: 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;
}, 10, 3 );

acfml_field_group_mode_field_translation_preference

ฟิลเตอร์นี้ให้คุณลบล้างการตั้งค่าการแปลเริ่มต้นสำหรับฟิลด์ ACF เมื่อกลุ่มฟิลด์ใช้ Same content in every language, translated หรือ Each language has its own content

หมายเหตุ: ฟิลเตอร์นี้จะเปลี่ยนเฉพาะการตั้งค่าการแปลเริ่มต้นเท่านั้น ไม่ได้เปลี่ยนการตั้งค่าที่บันทึกไว้ของแต่ละฟิลด์ หากคุณแก้ไขค่าเริ่มต้น คุณต้องบันทึกกลุ่มฟิลด์ที่ได้รับผลกระทบอีกครั้งเพื่อให้ค่าเริ่มต้นใหม่มีผล

ประเภท: ฟิลเตอร์

ความพร้อมใช้งาน: 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 ( 'url' === $fieldType ) {
        return 1; // WPML_COPY_CUSTOM_FIELD
    }

    return $fieldTranslationPreference;
}, 10, 3 );

ตัวอย่างนี้กำหนดให้ประเภทฟิลด์ url มีการตั้งค่าเป็น คัดลอก แทนที่จะเป็นการตั้งค่า แปล ที่แนะนำ

ค่าคงที่ของ 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

ค่าคงที่นี้จะกำหนดสถานะเริ่มต้นของช่องทำเครื่องหมาย Keep repeater and flexible sub-fields in the same order as the default language โดย ACFML จะแสดงช่องทำเครื่องหมายนี้ในกล่อง ACFML Synchronise translations ของโพสต์ที่ใช้ตัวเลือก Expert ค่าเริ่มต้นคือ true ดังนั้นช่องทำเครื่องหมายจะถูกเลือกไว้ตั้งแต่ต้น ตั้งค่าคงที่เป็น false เพื่อเริ่มต้นโดยที่ช่องทำเครื่องหมายถูกล้างออก ตัวเลือกที่คุณบันทึกในโพสต์จะลบล้างค่าเริ่มต้นนี้

คุณสามารถลบล้างค่าเริ่มต้นของ ACFML_REPEATER_SYNC_DEFAULT ได้ในไฟล์ functions.php ของธีมคุณ:

define('ACFML_REPEATER_SYNC_DEFAULT', false);

ACFML_SCAN_LOCAL_FIELDS

ค่าคงที่นี้จะกำหนดค่าเริ่มต้นของการตั้งค่า Sync Translation Preferences for Local Fields ใน ACFTools ตั้งค่าเป็น true เพื่อซิงค์การตั้งค่าการแปลของฟิลด์ในเครื่อง (ฟิลด์ Local JSON และฟิลด์ที่ลงทะเบียนด้วย PHP) ในทุกคำขอของหน้าจัดการเว็บไซต์ เมื่อไม่ได้กำหนดค่าคงที่หรือเป็น false ทาง ACFML จะไม่ซิงค์ฟิลด์เหล่านั้นโดยอัตโนมัติ

ตัวเลือกที่คุณบันทึกใน ACFTools จะลบล้างค่าคงที่นี้ หากต้องการซิงค์เพียงครั้งเดียว ให้เลือก Sync once now ที่นั่นแล้วคลิก ใช้

สำหรับข้อมูลเพิ่มเติม โปรดดูเอกสารประกอบอย่างเป็นทางการของ ACF เกี่ยวกับการใช้ Local JSON (เปิดในแท็บใหม่)

เขียนโดยAmir