WPML

Khám phá danh sách đầy đủ các hằng số và hook của ACF Multilingual (ACFML), cùng với các ví dụ về cách sử dụng chúng trong mã của bạn.

Các hook của ACF Multilingual (ACFML)

acfml_should_translate_acf_entity

Hook này cho phép bạn xác định xem các trường hoặc nhóm trường ACF có nên được dịch hay không. Bằng cách sử dụng bộ lọc này, bạn có thể bỏ qua việc dịch các trường hoặc nhóm trường cụ thể dựa trên logic tùy chỉnh của mình.

Loại: Bộ lọc

Khả dụng: ACFML 2.1.4

Các tham số:

$shouldTranslate
(bool) (Bắt buộc) Trường hoặc nhóm trường có nên được dịch hay không. Mặc định là true.

$entity
(array) (Bắt buộc) Thực thể đang được dịch, có thể là một mảng trường hoặc mảng nhóm.

$entityType
(string) (Tùy chọn) Loại thực thể đang được dịch. Nó có thể là ‘field’ hoặc ‘group’.

Ví dụ về cách sử dụng hook:

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

Bộ lọc này cho phép bạn ghi đè tùy chọn dịch thuật mặc định cho các trường ACF khi một nhóm trường sử dụng chế độ Các trường giống nhau hoặc Các trường khác nhau.

Lưu ý: Bộ lọc này chỉ thay đổi tùy chọn dịch thuật mặc định, không thay đổi tùy chọn đã lưu của từng trường riêng lẻ. Nếu bạn sửa đổi mặc định, bạn cần lưu lại các nhóm trường bị ảnh hưởng để mặc định mới được áp dụng.

Loại: Bộ lọc

Khả dụng: ACFML 2.0.0

Các tham số:

$fieldTranslationPreference (int) (Bắt buộc) Tùy chọn dịch thuật mặc định cho trường. Các giá trị có thể có:

  • 0Không dịch. WPML hoàn toàn bỏ qua trường này.
  • 1Sao chép. Giá trị trường được sao chép sang tất cả các ngôn ngữ và luôn được đồng bộ.
  • 2Dịch. Giá trị trường được cung cấp để dịch.
  • 3Sao chép một lần. Giá trị trường được sao chép sang tất cả các ngôn ngữ một lần, sau đó có thể được chỉnh sửa độc lập trong từng ngôn ngữ.

$groupMode (string) (Bắt buộc) Chế độ dịch nhóm trường. Các giá trị có thể có: translation hoặc localization.
$field (array) (Bắt buộc) Mảng trường ACF.

Ví dụ về cách sử dụng hook:

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 );

Ví dụ này buộc loại trường link có thể dịch được, ghi đè tùy chọn copy hoặc copy_once mặc định của nó.

Các hằng số của ACF Multilingual (ACFML)

ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS

Bắt đầu từ ACFML 2.1.5, bạn có thể sử dụng hằng số này để đưa các chuỗi văn bản của nhóm trường vào công việc dịch bài viết.

Để bật tính năng này, hãy thêm dòng sau vào tệp wp-config.php của bạn:

define( 'ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS', false );

Lưu ý:

  • Nếu bạn đã tạo một công việc dịch thuật trước khi thêm mã này vào tệp wp-config.php của mình, hãy hủy công việc đó và tạo một công việc mới.
  • Bạn có thể gửi các nhãn và lựa chọn của trường để dịch thông qua Bảng điều khiển dịch thuật nếu cần.

ACFML_HIDE_FIELD_ANNOTATIONS

Với mỗi trường đã dịch, ACF Multilingual thêm thông tin về giá trị bằng ngôn ngữ gốc.

Để xóa thông tin này khỏi các trường đã dịch, bạn có thể thêm dòng sau vào tệp wp-config.php của trang web:

define( 'ACFML_HIDE_FIELD_ANNOTATIONS', true );

ACFML_REPEATER_SYNC_DEFAULT

Bạn có thể sử dụng hằng số này để đặt giá trị mặc định cho tính năng đồng bộ trường Repeater. Nó được đặt thành true theo mặc định. Điều này có nghĩa là các trường Repeater được tự động đồng bộ trên các bản dịch. Nếu bạn đặt hằng số này thành false, tính năng đồng bộ trường Repeater sẽ bị tắt.

Bạn có thể ghi đè giá trị mặc định của ACFML_REPEATER_SYNC_DEFAULT trong tệp functions.php của giao diện:

define('ACFML_REPEATER_SYNC_DEFAULT', false);

ACFML_SCAN_LOCAL_FIELDS

Việc đặt hằng số này thành false sẽ tắt tính năng quét các tệp JSON cho các trường cục bộ.

Điều này có nghĩa là nếu bạn thay đổi tùy chọn dịch thuật trong các trường cục bộ, nó sẽ không đồng bộ với cơ sở dữ liệu. Bạn cần đặt tùy chọn dịch thuật theo cách thủ công cho các trường.

Để biết thêm thông tin, hãy xem tài liệu chính thức của ACF về cách sử dụng JSON cục bộ.

Được viết bởi Amir · Cập nhật lần cuối vào 30 tháng 6 năm 2026