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
Bộ lọc này quyết định liệu ACFML có hiển thị các nhãn đã dịch của một trường hoặc nhóm trường ACF hay không. Trả về false để hiển thị các nhãn gốc trong mọi ngôn ngữ. Các giá trị trường không thay đổi.
Loại: Bộ lọc
Tính 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ột 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;
}, 10, 3 );
acfml_field_group_mode_field_translation_preference
Bộ lọc này cho phép bạn ghi đè tùy chọn dịch mặc định cho các trường ACF khi một nhóm trường sử dụng Cùng nội dung trong mọi ngôn ngữ, đã dịch hoặc Mỗi ngôn ngữ có nội dung riêng.
Lưu ý: Bộ lọc này chỉ thay đổi tùy chọn dịch 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 để áp dụng mặc định mới.
Loại: Bộ lọc
Tính khả dụng: ACFML 2.0.0
Các tham số:
$fieldTranslationPreference (int) (Bắt buộc) Tùy chọn dịch mặc định cho trường. Các giá trị có thể có:
0— Không dịch. WPML hoàn toàn bỏ qua trường này.1— Sao 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ộ.2— Dịch. Giá trị trường được cung cấp để dịch.3— Sao 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 đó nó 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 của 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 ( 'url' === $fieldType ) {
return 1; // WPML_COPY_CUSTOM_FIELD
}
return $fieldTranslationPreference;
}, 10, 3 );
Ví dụ này cung cấp cho loại trường url tùy chọn Sao chép thay vì tùy chọn Dịch được đề xuất.
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 của nhóm trường vào công việc dịch thuật 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, hãy hủy nó 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
Đối với mỗi trường đã dịch, ACF Multilingual sẽ thêm thông tin về giá trị trong 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 trên trang web của bạn:
define( 'ACFML_HIDE_FIELD_ANNOTATIONS', true );
ACFML_REPEATER_SYNC_DEFAULT
Hằng số này thiết lập trạng thái mặc định của hộp kiểm Giữ các trường con lặp lại và linh hoạt theo cùng thứ tự với ngôn ngữ mặc định. ACFML hiển thị hộp kiểm này trong hộp Đồng bộ hóa bản dịch ACFML của một bài viết sử dụng tùy chọn Chuyên gia. Mặc định là true, vì vậy hộp kiểm sẽ được chọn theo mặc định. Đặt hằng số thành false để bắt đầu với hộp kiểm bị bỏ chọn. Tùy chọn mà bạn lưu trên một bài viết sẽ ghi đè mặc định này.
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
Hằng số này thiết lập mặc định cho cài đặt Đồng bộ hóa tùy chọn dịch cho các trường cục bộ trong ACFCông cụ. Đặt thành true để đồng bộ hóa các tùy chọn dịch của các trường cục bộ (các trường Local JSON và được đăng ký bằng PHP) trên mỗi yêu cầu trang quản trị. Khi hằng số không được xác định hoặc là false, ACFML sẽ không đồng bộ hóa chúng tự động.
Một lựa chọn mà bạn lưu trong ACFCông cụ sẽ ghi đè hằng số này. Để đồng bộ hóa một lần, hãy chọn Đồng bộ hóa một lần ngay bây giờ tại đó và nhấp vào Áp dụ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ộ (mở trong tab mới).