В WordPress 7.0 система Abilities API получила клиентскую JavaScript-часть. Сам API появился ещё в WordPress 6.9 и дал ядру, плагинам и темам общий способ описывать отдельные функции сайта как abilities — с входными данными, результатом, логикой выполнения и проверкой прав. Теперь та же модель распространяется и на код, работающий непосредственно в браузере.
Идея Abilities API в том, чтобы функции WordPress можно было не только вызвать, но и обнаружить и понять программно. Внешний инструмент или ИИ-агент может получить описание доступной способности, узнать, какие данные она принимает и что возвращает, а затем запросить её выполнение через предусмотренный интерфейс.
При этом Abilities API сам по себе не выдаёт ИИ неограниченный доступ к сайту. Выполнение операции остаётся под контролем WordPress: разработчик задаёт проверку разрешений, а входные и выходные данные могут проверяться по заранее объявленным схемам. Для этого WordPress использует JSON Schema — точнее, поддерживаемое ядром подмножество спецификации JSON Schema Draft 4.
На серверной стороне разработчикам доступны функции wp_get_abilities(), wp_get_ability() и wp_has_ability() для получения и проверки зарегистрированных способностей. Категории создаются через wp_register_ability_category(), а сами способности — через wp_register_ability().
При регистрации способности указываются её название, описание и категория, а также input_schema, output_schema, execute_callback и permission_callback. Если способность должна быть доступна через REST API, в её метаданных можно установить show_in_rest в значение true.
После этого WordPress может автоматически открыть способность через пространство имён wp-abilities/v1. Основные маршруты выглядят так:
GET /wp-json/wp-abilities/v1/categories— получить категории способностей;GET /wp-json/wp-abilities/v1/abilities— получить список доступных abilities;GET /wp-json/wp-abilities/v1/abilities/{name}— посмотреть описание и контракт конкретной способности;/wp-json/wp-abilities/v1/abilities/{name}/run— выполнить способность.
Все REST-запросы к Abilities API требуют аутентифицированного пользователя. Для внешних приложений WordPress рекомендует использовать пароли приложений, хотя поддерживаются и другие стандартные способы аутентификации REST API. Дополнительно permission_callback определяет, имеет ли конкретный пользователь право выполнить выбранную операцию.
Главное изменение в WordPress 7.0 — появление Client-Side Abilities API. Для него доступны два пакета: @wordpress/abilities и @wordpress/core-abilities. Первый содержит хранилище, регистрацию, поиск и выполнение клиентских abilities, а второй связывает эту систему с WordPress и автоматически загружает серверные способности через REST API.
Это позволяет описывать по тем же принципам действия, которые происходят непосредственно в интерфейсе браузера. Например, клиентская способность может отвечать за навигацию внутри админки или вставку блоков, а серверная — получать или изменять данные сайта. Для вызывающей системы обе операции представляются в более предсказуемом и машиночитаемом формате.
Именно поэтому Abilities API рассматривается как важная основа для ИИ-агентов и автоматизации. Агент может сначала выяснить, какие операции вообще доступны, изучить их схемы и только затем запросить разрешённое действие. Но это инфраструктура, а не готовая интеграция со всеми ИИ-сервисами: конкретному агенту или платформе всё равно нужен механизм аутентификации и подключения к WordPress.
Для обычного владельца сайта Abilities API пока не выглядит как отдельная функция в панели управления. Изменение в первую очередь предназначено для разработчиков. Однако в долгосрочной перспективе оно даёт WordPress единый способ описывать действия сайта как на сервере, так и в браузере — именно тот слой, который нужен для более сложных автоматизаций и работы программных агентов.
Источники: WordPress Core: Abilities API в 6.9, WordPress Core: Client-Side Abilities API в 7.0.