ACF: как изменить значения / настройки по умолчанию

Использование расширенных пользовательских полей,

  1. Скажи в любое время я хочу поле изображения, мне нужно, чтобы вывести массив по умолчанию.
  2. Или в любое время я использую WYSIWYG, я не хочу, чтобы это показывало медиа кнопка
  3. Нужен TextArea ? я хочу это с без форматирования по умолчанию.

Как я могу изменить это по умолчанию ?

Какие-нибудь плагины или фрагмент кода для functions.php?

Спасибо !!

Johan

2

Решение

ОК, для принудительной установки поля ACF, вы должны использовать другой хук, названный acf/update_field/, Он работает так же, как и раньше:

add_filter('acf/update_field/type=wysiwyg', 'my_custom_acf_filter_wysiwyg', 1);
function my_custom_acf_filter_wysiwyg($field){
$field['media_upload'] = 0;
return $field;
}

И вы можете использовать эти другие для целевых конкретных полей:

acf/update_field/name={$field['name']}
acf/update_field/key={$field['key']}

Когда настройки будут сохранены, их примут ваши пользовательские значения.

1

Другие решения

Я использую ACF Pro, поэтому мой ответ не может работать для вас …

Для ваших передних полей, вы можете использовать acf/format_value зацепить и изменить $field параметры, которые вы хотите:

Пример текстовой области:

add_filter('acf/format_value/type=textarea', 'my_custom_acf_filter_textarea', 1, 3);
function my_custom_acf_filter_textarea($value, $post_id, $field){
remove_filter('acf/format_value/type=textarea', 'my_custom_acf_filter_textarea', 1);
$field['new_lines'] = '';
$newvalue = acf_format_value($value, $post_id, $field);
return $newvalue;
}

Пример изображения:

add_filter('acf/format_value/type=image', 'my_custom_acf_filter_image', 1, 3);
function my_custom_acf_filter_image($value, $post_id, $field){
remove_filter('acf/format_value/type=image', 'my_custom_acf_filter_image', 1);
$field['return_format'] = 'array';
$newvalue = acf_format_value($value, $post_id, $field);
return $newvalue;
}

Обратите внимание, что вы также можете использовать опции для определенных полей с помощью этих хуков:

acf/format_value/name={$field['_name']}
acf/format_value/key={$field['key']}

И для вашего внутреннего дисплея, используйте acf/prepare_field :

Пример WYSIWYG:

add_filter('acf/prepare_field/type=wysiwyg', 'my_custom_acf_filter_wysiwyg', 1);
function my_custom_acf_filter_wysiwyg($field){
remove_filter('acf/prepare_field/type=wysiwyg', 'my_custom_acf_filter_wysiwyg', 1);
$field['media_upload'] = 0;
return $field;
}

Для отображения администратора вы также можете настроить таргетинг на определенные поля с помощью:

acf/prepare_field/name={$field['name']}
acf/prepare_field/key={$field['key']}
2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector