Преобразование шорткодов в полях в админке
Advanced Custom Fields (ACF)- Все Функции ACF
- Все Хуки ACF
- Регистрация полей через PHP
- Шорткод [acf]
- Добавление полей к определенной рубрике
- Добавление полей к терминам таксономии
- Преобразование шорткодов в полях в админке
- Функция Local JSON
Преобразование шорткодов в атрибутах полей позволит делать их вам более персонализированными, кастомизируемыми и динамичными. Это также может оказаться полезным, когда сообщения или инструкции к полям часто повторяются и их массовое изменение превращается в рутину.
Шорткод
Пусть у нас на руках следующий шорткод:
add_shortcode( 'note', function () { return 'Юзер, я твой шорткод!'; } );
О шорткодах читайте в описании к функции add_shortcode().
Примеры
Во всех примерах используется функция apply_shortcodes(), которая с WP 5.4 пришла на смену функции do_shortcode(). Использовать можно любую из них.
Узнайте больше о фильтре load_field, чтобы работать с полями более эффективно.
Контент поля Сообщение (message)
function apply_shortcodes_for_acf_message( $field ) { $field['message'] = apply_shortcodes( $field['message'] ); return $field; } add_filter( 'acf/load_field/type=message', 'apply_shortcodes_for_acf_message' );
Теперь, если сообщение задать как "Здесь будет содержимое шорткода: [note]"
, то выведется соответственно "Здесь будет содержимое шорткода: Юзер, я твой шорткод!"
.
Контент любого поля в атрибуте "Инструкция"
add_filter( 'acf/load_field', function ( $field ) { $field['instructions'] = apply_shortcodes( $field['instructions'] ); return $field; } );
Атрибуты других полей
Для создания динамики с помощью шорткодов вы можете поэкспериментировать с другими атрибутами поля. Пример массива настроек поля "Текст" (подавляющую часть настроек имеют и другие поля):
Array ( [ID] => 46 [key] => field_5f5b7af1a1b31 [label] => Какое-то поле [name] => какое-то_поле [prefix] => acf [type] => text [value] => [menu_order] => 1 [instructions] => Здесь будет содержимое шорткода: [note] [required] => 0 [id] => [class] => [conditional_logic] => 0 [parent] => 30 [wrapper] => Array ( [width] => [class] => [id] => ) [default_value] => [placeholder] => [prepend] => [append] => [maxlength] => [_name] => какое-то_поле [_valid] => 1 )