REST API, Abilities и JavaScript
REST API
Чтение
Группы с настройкой «Show in REST API» добавляют свойство acf к записям, рубрикам и пользователям в wp/v2.
- По умолчанию значения без форматирования (ID), с типами как в ACF: числа и логические значения как есть, ID вложений и объектов — целые числа, пустые —
null. - С
?acf_format=standardзначения форматируются, но без закрытых данных:- связи — только на записи, доступные запрашивающему (
ID,post_title,post_type,permalink); - пользователи —
IDиdisplay_name, email — только с правомlist_users; - поля записей под паролем скрыты.
- связи — только на записи, доступные запрашивающему (
Запись
POST /wp-json/wp/v2/posts/12
Content-Type: application/json
{ "acf": { "rating": 4, "steps": [ { "step": "Один" } ] } }Значения проверяются как в формах; неизвестные поля и неверные значения дают 400.
Служебные маршруты
Маршруты wpff/v1/* (группы, страницы настроек, типы записей, инструменты) доступны только администраторам.
Abilities API
В WordPress 6.9+ плагин регистрирует способности категории custom-fields. Они доступны через REST-маршруты wp-abilities/v1 и MCP-клиентам.
| Способность | Возвращает | Право |
|---|---|---|
wpff/list-field-groups | Группы полей с полями и правилами размещения. | Управление группами полей. |
wpff/get-field-values | Значения объекта без форматирования. Вход: { "object_id": 12 }, "term_5", "user_3" или "option". | Редактирование объекта. |
Обе способности только читают данные.
JavaScript: хранилище wpff/fields
На экранах с полями, в том числе в редакторе блоков:
const price = wp.data.select( 'wpff/fields' ).getFieldValue( 'price' );
wp.data.dispatch( 'wpff/fields' ).setFieldValue( 'price', 1500 );
wp.data.subscribe( () => console.log( wp.data.select( 'wpff/fields' ).getFieldValues() ) );setFieldValue поддерживает простые поля: текст, число, выбор, флажки, переключатели, да/нет, даты, цвет и визуальный редактор.
Типы полей со своими скриптами могут запускаться в новых строках, слушая jQuery-событие wpff:init на document. Аргумент события — новый контейнер.