Возможность: acf/create-field-group

Обзор

Создает новую группу полей ACF с полями и правилами расположения.

Описание

Создает новую группу полей в ACF с указанными заголовком, полями и правилами расположения. Группа полей автоматически включена для доступа AI.

Входные данные

{
  "title": "Поля товара",
  "fields": [
    {
      "label": "Цена",
      "name": "price",
      "type": "number"
    }
  ],
  "location": [
    [
      {
        "param": "post_type",
        "operator": "==",
        "value": "product"
      }
    ]
  ]
}

Обязательные свойства

title
(string) Заголовок группы полей.

fields
(array) Массив конфигураций полей. См. ниже Схема полей.

location
(array) Правила расположения, определяющие, где отображается группа полей. См. ниже Схема расположения.

Необязательные свойства

description
(string) Описание этой группы полей.

position
(string) Где показывать группу полей. По умолчанию: normal
normal: Под редактором содержимого
side: В боковой панели
acf_after_title: После заголовка записи

style
(string) Стиль группы полей. По умолчанию: default
default: Стандартный метабокс
seamless: Без оформления метабокса

label_placement
(string) Где размещать подписи полей. По умолчанию: top
top: Над полем
left: Рядом с полем

instruction_placement
(string) Где показывать инструкции к полям. По умолчанию: label
label: Под подписью
field: Под полем

hide_on_screen
(array) Элементы, которые нужно скрыть на экране редактирования. Варианты: permalink, the_content, excerpt, custom_fields, discussion, comments, revisions, slug, author, format, page_attributes, featured_image, categories, tags, send-trackbacks

active
(boolean) Активна ли группа полей. По умолчанию: true

show_in_rest
(boolean) Показывать ли в REST API. По умолчанию: true

allow_ai_access
(boolean) Разрешать ли доступ AI. По умолчанию: true

ai_description
(string) Описание, помогающее AI понять назначение этой группы полей.

Схема полей

Каждое поле в массиве fields поддерживает следующие свойства:

СвойствоТипОбязательноОписание
labelstringДаЧитабельная подпись поля
namestringДаИмя поля (используется в коде)
typestringДаТип поля (см. ниже)
instructionsstringНетПодсказка для редакторов
requiredbooleanНетОбязательное ли поле
default_valuemixedНетЗначение по умолчанию
placeholderstringНетТекст-заполнитель
conditional_logicarrayНетПравила условного отображения

Поддерживаемые типы полей

Базовые: text, textarea, number, range, email, url, password

Содержимое: image, file, wysiwyg, oembed, gallery

Варианты выбора: select, checkbox, radio, button_group, true_false

Связанные: link, post_object, page_link, relationship, taxonomy, user

Макет: group, repeater, flexible_content, clone

jQuery: google_map, date_picker, date_time_picker, time_picker, color_picker

Схема расположения

Правила расположения — это вложенные массивы, представляющие логику И/ИЛИ:

[
  [
    { "param": "post_type", "operator": "==", "value": "product" }
  ]
]

Внешний массив = группы ИЛИ, внутренний массив = условия И внутри группы.

Параметры расположения

ПараметрОписание
post_typeСлаг типа записи
post_templateФайл шаблона страницы
post_statusСтатус записи
post_formatФормат записи
post_categoryID категории
post_taxonomyТермин таксономии
pageID конкретной страницы
page_parentID родительской страницы
page_typeТип страницы (front, posts, top, parent, child)
user_formФорма пользователя (add, edit)
user_roleРоль пользователя
taxonomyЭкран таксономии
options_pageСлаг страницы настроек

Операторы

  • ==: Равно
  • !=: Не равно

Вывод

{
  "success": true,
  "field_group": {
    "ID": 123,
    "key": "group_abc123def456",
    "title": "Поля товара",
    "fields": [...],
    "location": [...],
    "active": true,
    "allow_ai_access": true
  },
  "field_group_id": 123,
  "message": "Группа полей 'Поля товара' успешно создана."
}

Аннотации

АннотацияЗначение
readonlyfalse
destructivefalse
idempotentfalse

Права доступа

Требует capability ACF (по умолчанию: manage_options).

Пример

Создайте группу полей для типа записи Event:

{
  "title": "Данные события",
  "fields": [
    {
      "label": "Дата события",
      "name": "event_date",
      "type": "date_picker",
      "required": true
    },
    {
      "label": "Время события",
      "name": "event_time",
      "type": "time_picker"
    },
    {
      "label": "Место проведения",
      "name": "location",
      "type": "text",
      "instructions": "Введите название площадки и адрес"
    },
    {
      "label": "Цена билета",
      "name": "ticket_price",
      "type": "number",
      "default_value": 0
    }
  ],
  "location": [
    [
      {
        "param": "post_type",
        "operator": "==",
        "value": "event"
      }
    ]
  ],
  "ai_description": "Поля для планирования события и информации о билетах"
}

Примечания

  • Ключи полей автоматически генерируются, если не указаны
  • Ключ группы полей автоматически генерируется на основе уникального идентификатора
  • Вложенные поля (repeater, group, flexible content) рекурсивно поддерживают ту же схему полей
  • Неверные типы полей или конфигурации возвращают WP_Error

Обновлено: 01.06.2026