Ознакомьтесь с полным списком констант и хуков 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, когда группа полей использует опцию Одинаковый контент на всех языках, переведенный или У каждого языка свой собственный контент.
Примечание: этот фильтр изменяет только параметр перевода по умолчанию, а не сохраненные параметры отдельных полей. Если Вы изменяете значение по умолчанию, Вам необходимо пересохранить затронутые группы полей, чтобы новое значение по умолчанию вступило в силу.
Тип: фильтр
Доступность: 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
Эта константа задает состояние по умолчанию для флажка Сохранять подполя повторителя и гибкого содержания в том же порядке, что и в языке по умолчанию. ACFML показывает этот флажок в блоке Синхронизация переводов ACFML для записи, которая использует опцию Эксперт. Значение по умолчанию — true, поэтому изначально флажок установлен. Установите константу в false, чтобы изначально флажок был снят. Выбор, который Вы сохраняете в записи, переопределяет это значение по умолчанию.
Вы можете переопределить значение по умолчанию для ACFML_REPEATER_SYNC_DEFAULT в файле functions.php Вашей темы:
define('ACFML_REPEATER_SYNC_DEFAULT', false);
ACFML_SCAN_LOCAL_FIELDS
Эта константа задает значение по умолчанию для настройки Синхронизировать параметры перевода для локальных полей в разделе ACFИнструменты. Установите ее в true для синхронизации параметров перевода локальных полей (Local JSON и полей, зарегистрированных в PHP) при каждом запросе в админ-панели. Если константа не определена или равна false, ACFML не синхронизирует их автоматически.
Выбор, который Вы сохраняете в ACFИнструменты, переопределяет эту константу. Чтобы выполнить синхронизацию один раз, выберите там Синхронизировать один раз сейчас и нажмите Применить.
Для получения дополнительной информации ознакомьтесь с официальной документацией ACF об использовании локального JSON (открывается в новой вкладке).