Перейти до основного вмісту

Довідник можливостей

Можливості — це атомарні дії, які Gratis AI Agent може викликати у вашій інсталяції WordPress. Кожна можливість є зареєстрованим PHP-класом, який надає JSON-схему — агент читає цю схему під час виконання, щоб зрозуміти, які параметри потрібні та що повертає можливість.

На цій сторінці задокументовано всі можливості, що постачаються з Gratis AI Agent v1.9.0.


Користувацькі типи записів

Ці можливості керують користувацькими типами записів (CPT), зареєстрованими через агента. Реєстрації зберігаються в таблиці опцій WordPress, тож вони зберігаються після деактивації та повторної активації плагіна.

register_post_type

Реєструє новий користувацький тип запису.

Параметри

ПараметрТипОбов’язковоОпис
slugstringТакКлюч типу запису (макс. 20 символів, без великих літер, без пробілів)
singular_labelstringТакЗрозуміла для людини назва в однині, напр. Portfolio Item
plural_labelstringТакЗрозуміла для людини назва в множині, напр. Portfolio Items
publicbooleanНіЧи є тип запису загальнодоступним. За замовчуванням true
supportsarrayНіФункції для підтримки: title, editor, thumbnail, excerpt, comments, revisions, custom-fields. За замовчуванням ["title","editor"]
has_archivebooleanНіЧи ввімкнено сторінку архіву типу запису. За замовчуванням false
menu_iconstringНіКлас Dashicons або URL для іконки меню адміністратора. За замовчуванням "dashicons-admin-post"
rewrite_slugstringНіURL-slug для типу запису. За замовчуванням дорівнює slug

Приклад

{
"slug": "portfolio",
"singular_label": "Portfolio Item",
"plural_label": "Portfolio Items",
"public": true,
"supports": ["title", "editor", "thumbnail"],
"has_archive": true,
"menu_icon": "dashicons-portfolio"
}

Повертає { "success": true, "slug": "portfolio" }


list_post_types

Повертає всі користувацькі типи записів, зареєстровані агентом.

Параметри — немає

Повертає

{
"post_types": [
{
"slug": "portfolio",
"singular_label": "Portfolio Item",
"plural_label": "Portfolio Items",
"public": true
}
]
}

delete_post_type

Скасовує реєстрацію користувацького типу запису, раніше зареєстрованого агентом. Наявні записи цього типу залишаються в базі даних, але більше не доступні через цей тип запису.

Параметри

ПараметрТипОбов’язковоОпис
slugstringТакКлюч типу запису, який потрібно видалити

Повертає { "success": true, "slug": "portfolio" }


Користувацькі таксономії

Ці можливості керують користувацькими таксономіями. Як і CPT, реєстрації таксономій зберігаються.

register_taxonomy

Реєструє нову користувацьку таксономію.

Параметри

ПараметрТипОбов’язковоОпис
slugstringТакКлюч таксономії (макс. 32 символи)
singular_labelstringТакЗрозуміла для людини назва в однині, напр. Project Category
plural_labelstringТакЗрозуміла для людини назва в множині, напр. Project Categories
post_typesarrayТакSlug-и типів записів, до яких має бути прикріплена ця таксономія
hierarchicalbooleanНіtrue для стилю категорій, false для стилю тегів. За замовчуванням true
publicbooleanНіЧи є терміни загальнодоступними. За замовчуванням true
rewrite_slugstringНіURL-slug для таксономії. За замовчуванням дорівнює slug

Приклад

{
"slug": "project-category",
"singular_label": "Project Category",
"plural_label": "Project Categories",
"post_types": ["portfolio"],
"hierarchical": true
}

Повертає { "success": true, "slug": "project-category" }


list_taxonomies

Повертає всі користувацькі таксономії, зареєстровані агентом.

Параметри — немає

Повертає

{
"taxonomies": [
{
"slug": "project-category",
"singular_label": "Project Category",
"post_types": ["portfolio"],
"hierarchical": true
}
]
}

delete_taxonomy

Скасовує реєстрацію користувацької таксономії, раніше зареєстрованої агентом.

Параметри

ПараметрТипОбов’язковоОпис
slugstringТакКлюч таксономії, який потрібно видалити

Повертає { "success": true, "slug": "project-category" }


Система дизайну

Можливості системи дизайну змінюють візуальне представлення сайту WordPress — від користувацького CSS до шаблонів блоків і логотипа сайту.

inject_custom_css

Додає CSS до <head> сайту через wp_add_inline_style. CSS зберігається в опції gratis_ai_agent_custom_css і коректно вилучається з черги, коли можливість скидається.

Параметри

ПараметрТипОбов’язковоОпис
cssstringТакДійсний CSS для вставлення
labelstringНіЗрозуміла для людини мітка для цього CSS-блоку, використовується в журналах налагодження. За замовчуванням "agent-injected"
replacebooleanНіЯкщо true, замінює весь раніше вставлений CSS. За замовчуванням false (додає в кінець)

Приклад

{
"css": ":root { --primary: #1a1a2e; --accent: #e94560; } body { font-family: 'Inter', sans-serif; }",
"label": "brand-colours",
"replace": false
}

Повертає { "success": true, "bytes": 96 }


add_block_pattern

Реєструє багаторазовий шаблон блоків у бібліотеці шаблонів WordPress.

Параметри

ПараметрТипОбов’язковоОпис
slugstringТакІдентифікатор шаблону, напр. gratis/hero-dark
titlestringТакЗрозуміла для людини назва шаблону, що показується в редакторі
contentstringТакСеріалізована розмітка блоків (HTML) для шаблону
categoriesarrayНіSlug-и категорій шаблонів, напр. ["featured", "hero"]
descriptionstringНіКороткий опис, що показується у виборі шаблонів
keywordsarrayНіКлючові слова для пошуку

Повертає { "success": true, "slug": "gratis/hero-dark" }


list_block_patterns

Перелічує всі шаблони блоків, зареєстровані агентом.

Параметри — немає

Повертає

{
"patterns": [
{
"slug": "gratis/hero-dark",
"title": "Dark Hero",
"categories": ["hero"]
}
]
}

Установлює логотип сайту WordPress на вказаний ID вкладення або URL віддаленого зображення. Коли надано URL, зображення завантажується та імпортується до медіатеки.

Параметри

ПараметрТипОбов’язковоОпис
attachment_idintegerНіID наявного вкладення медіатеки
urlstringНіURL віддаленого зображення для імпорту та встановлення як логотипу

Потрібно надати один із attachment_id або url.

Повертає { "success": true, "attachment_id": 42 }


apply_theme_json_preset

Застосовує іменований пресет кольорів/типографіки до theme.json активної теми (або global-styles). Пресети — це добірки, які підтримує команда Gratis AI Agent.

Параметри

ПараметрТипОбов’язковоОпис
presetstringТакНазва пресету, напр. minimal-dark, warm-editorial, corporate-blue
mergebooleanНіЯкщо true, об’єднати з наявними значеннями замість заміни. За замовчуванням false

Доступні пресети

ПресетОпис
minimal-darkМайже чорний фон, білий текст, один акцентний колір
warm-editorialТеплий майже білий фон, заголовки із зарубками, природні акцентні кольори
corporate-blueТемно-синя та біла палітра з професійною типографікою
vibrant-startupЯскраві градієнти, заокруглені кути, сучасний шрифт без зарубок
classic-blogНейтральні сірі відтінки, комфортна висота рядка, традиційні відступи макета

Повертає { "success": true, "preset": "minimal-dark" }


Глобальні стилі

Можливості глобальних стилів читають і записують значення theme.json через WordPress Global Styles API, впливаючи на всі блоки та шаблони в межах усього сайту.

get_global_styles

Повертає поточну конфігурацію глобальних стилів.

Параметри

ПараметрТипОбов’язковоОпис
pathstringНіJSON-вказівник на конкретне значення, напр. /color/palette або /typography/fontSizes. Якщо пропущено, повертає весь об’єкт.

Повертає повний об’єкт глобальних стилів або значення за path.


set_global_styles

Оновлює одне або кілька значень у конфігурації глобальних стилів.

Параметри

ПараметрТипОбов’язковоОпис
pathstringТакJSON-вказівник на значення, яке потрібно встановити, напр. /color/palette
valueanyТакНове значення

Приклад — додати колір до палітри

{
"path": "/color/palette",
"value": [
{ "slug": "primary", "color": "#1a1a2e", "name": "Primary" },
{ "slug": "accent", "color": "#e94560", "name": "Accent" }
]
}

Повертає { "success": true, "path": "/color/palette" }


reset_global_styles

Скидає всі зміни глобальних стилів, застосовані агентом, відновлюючи стандартні значення теми.

Параметри — немає

Повертає { "success": true }


Можливості навігаційних меню створюють і керують навігаційними меню WordPress та їхніми елементами.

create_menu

Створює нове навігаційне меню WordPress.

Параметри

ПараметрТипОбов’язковоОпис
namestringТакНазва меню, напр. Primary Navigation
locationstringНіРозташування теми, до якого призначити це меню, напр. primary

Повертає { "success": true, "menu_id": 7 }


update_menu

Перейменовує меню або перепризначає його до розташування теми.

Параметри

ПараметрТипОбов’язковоОпис
menu_idintegerТакID меню для оновлення
namestringНіНова назва меню
locationstringНіРозташування теми для призначення або перепризначення

Повертає { "success": true, "menu_id": 7 }


add_menu_item

Додає елемент до наявного навігаційного меню.

Параметри

ПараметрТипОбов’язковоОпис
menu_idintegerТакID цільового меню
typestringТакТип елемента: custom, post_type або taxonomy
titlestringНіМітка для елемента меню (обов’язкова для типу custom)
urlstringНіURL для елементів custom
object_idintegerНіID запису або ID терміна для елементів post_type/taxonomy
parent_idintegerНіID елемента меню, під яким потрібно вкласти цей елемент
positionintegerНіПозиція в меню з відліком від нуля

Повертає { "success": true, "item_id": 12 }


remove_menu_item

Видаляє елемент із навігаційного меню.

Параметри

ПараметрТипОбов’язковоОпис
item_idintegerТакID елемента меню для видалення

Повертає { "success": true, "item_id": 12 }


list_menus

Перелічує всі навігаційні меню WordPress, включно з призначеними їм розташуваннями теми.

Параметри — немає

Повертає

{
"menus": [
{
"menu_id": 7,
"name": "Primary Navigation",
"location": "primary",
"item_count": 5
}
]
}

Керування опціями

Можливості опцій читають і записують опції WordPress через get_option / update_option. Вбудований безпечний список блокування запобігає випадковій зміні критичних налаштувань.

get_option

Читає опцію WordPress.

Параметри

ПараметрТипОбов’язковоОпис
option_namestringТакКлюч опції, напр. blogname

Повертає { "option_name": "blogname", "value": "My Site" }

Повертає помилку, якщо option_name є в безпечному списку блокування.


set_option

Записує опцію WordPress.

Параметри

ПараметрТипОбов’язковоОпис
option_namestringТакКлюч опції
valueanyТакНове значення (автоматично серіалізується для масивів/об’єктів)
autoloadstringНі"yes" або "no". За замовчуванням зберігає наявне налаштування autoload

Повертає помилку, якщо option_name є у безпечному блок-листі.

Повертає { "success": true, "option_name": "blogname" }


delete_option

Видаляє опцію WordPress.

Параметри

ПараметрТипОбов’язковийОпис
option_namestringТакКлюч опції для видалення

Повертає помилку, якщо option_name є у безпечному блок-листі.

Повертає { "success": true, "option_name": "my_custom_option" }


list_options

Перелічує опції WordPress, що відповідають шаблону.

Параметри

ПараметрТипОбов’язковийОпис
patternstringНіШаблон SQL LIKE для фільтрації назв опцій, напр. gratis_%. Повертає всі опції, якщо пропущено (використовуйте обережно на великих базах даних).
limitintegerНіМаксимальна кількість результатів. За замовчуванням 50, максимум 500

Повертає

{
"options": [
{ "option_name": "gratis_ai_agent_version", "autoload": "yes" }
],
"total": 1
}

Керування вмістом

Можливості керування вмістом створюють і редагують дописи та сторінки WordPress. ID дописів повертаються, щоб наступні кроки в планах із кількома можливостями могли посилатися на створений вміст.

create_post

Створює новий допис WordPress, сторінку або запис користувацького типу допису.

Параметри

ПараметрТипОбов’язковийОпис
titlestringТакЗаголовок допису
contentstringНіТіло допису — приймає звичайний текст, HTML або серіалізовану розмітку блоків
statusstringНіdraft, publish, pending, private. За замовчуванням draft
post_typestringНіSlug типу допису, напр. post, page або будь-який зареєстрований CPT. За замовчуванням post
excerptstringНіКороткий підсумок, що показується в архівах і результатах пошуку
categoriesarrayНіМасив назв або ID категорій для призначення
tagsarrayНіМасив назв або ID позначок для призначення
authorintegerНіID користувача WordPress, якого встановити автором допису. За замовчуванням поточний користувач
datestringНіДата публікації у форматі ISO 8601, напр. 2026-05-01T09:00:00
page_templatestringНіФайл шаблону, який потрібно призначити цьому допису або сторінці, напр. page-full-width.php. Має сенс лише коли post_type є page або CPT, що підтримує шаблони сторінок.

Приклад

{
"title": "Welcome to Our New Site",
"content": "<!-- wp:paragraph --><p>Hello world!</p><!-- /wp:paragraph -->",
"status": "publish",
"post_type": "page",
"page_template": "page-full-width.php"
}

Повертає { "success": true, "post_id": 42, "permalink": "https://example.com/welcome/" }


update_post

Оновлює наявний допис або сторінку WordPress.

Параметри

ПараметрТипОбов’язковийОпис
post_idintegerТакID допису для оновлення
titlestringНіНовий заголовок допису
contentstringНіНове тіло допису
statusstringНіНовий статус: draft, publish, pending, private
excerptstringНіНовий уривок
categoriesarrayНіЗамінити повний список категорій цим масивом назв або ID
tagsarrayНіЗамінити повний список позначок цим масивом назв або ID
page_templatestringНіНовий файл шаблону, який потрібно призначити цьому допису або сторінці, напр. page-full-width.php. Передайте порожній рядок, щоб вилучити призначення шаблону та повернутися до типового значення теми.

Приклад — змінити шаблон після створення

{
"post_id": 42,
"page_template": "page-full-width.php"
}

Повертає { "success": true, "post_id": 42 }


batch_create_posts

Створює кілька дописів за один виклик можливості, зменшуючи кількість повторних звернень під час створення сайту або масового імпорту вмісту. Дописи створюються послідовно; якщо один завершується помилкою, інші продовжують оброблятися, а збій повідомляється в масиві результатів.

Параметри

ПараметрТипОбов’язковийОпис
postsarrayТакМасив об’єктів дописів, кожен із яких приймає ті самі параметри, що й create_post
stop_on_errorbooleanНіЯкщо true, зупинити обробку після першого збою. За замовчуванням false

Приклад

{
"posts": [
{
"title": "About Us",
"post_type": "page",
"status": "publish",
"page_template": "page-full-width.php"
},
{
"title": "Services",
"post_type": "page",
"status": "publish"
},
{
"title": "Contact",
"post_type": "page",
"status": "publish"
}
]
}

Повертає

{
"created": 3,
"failed": 0,
"results": [
{ "success": true, "post_id": 42, "title": "About Us" },
{ "success": true, "post_id": 43, "title": "Services" },
{ "success": true, "post_id": 44, "title": "Contact" }
]
}

set_featured_image

Призначає головне зображення (мініатюру допису) наявному допису або сторінці. Приймає ID наявного вкладення Media Library або URL віддаленого зображення; коли надано URL, зображення завантажується та імпортується автоматично.

Параметри

ПараметрТипОбов’язковийОпис
post_idintegerТакID допису або сторінки для оновлення
attachment_idintegerНіID наявного вкладення Media Library
urlstringНіURL віддаленого зображення для імпорту та встановлення як головного зображення
alt_textstringНіАльтернативний текст, який потрібно застосувати до вкладення, якщо його імпортовано з URL

Потрібно надати одне з attachment_id або url.

Повертає { "success": true, "post_id": 42, "attachment_id": 17 }


create_contact_form

Створює контактну форму за допомогою активного плагіна форм (Contact Form 7, WPForms, Fluent Forms або Gravity Forms, залежно від того, який установлено). Повертає shortcode, який можна вбудувати в будь-який допис або сторінку.

Параметри

ПараметрТипОбов’язковоОпис
titlestringТакНазва форми, що відображається в адмінці плагіна форм
fieldsarrayТакУпорядкований список полів форми (див. об’єкт поля нижче)
recipientstringНіEmail-адреса для отримання надсилань. За замовчуванням використовується email адміністратора WordPress
subjectstringНіРядок теми email. Підтримує заповнювачі [your-name] і [your-subject] під час використання Contact Form 7
confirmation_messagestringНіПовідомлення, що відображається після успішного надсилання. За замовчуванням: "Thank you for your message. We'll be in touch soon."

Об’єкт поля

КлючТипОбов’язковоОпис
namestringТакВнутрішня назва поля / машинний ключ
labelstringТакЗрозуміла для користувача мітка, що відображається у формі
typestringТакtext, email, tel, textarea, select, checkbox, radio, file, date
requiredbooleanНіЧи має поле бути заповнене перед надсиланням. За замовчуванням false
optionsarrayНіВаріанти для полів select, checkbox і radio
placeholderstringНіТекст заповнювача для введень текстового типу

Приклад

{
"title": "Restaurant Booking Enquiry",
"fields": [
{ "name": "your-name", "label": "Name", "type": "text", "required": true },
{ "name": "your-email", "label": "Email", "type": "email", "required": true },
{ "name": "party-size", "label": "Party size", "type": "select", "options": ["1–2", "3–5", "6–10", "10+"] },
{ "name": "your-message", "label": "Special requests", "type": "textarea", "required": false }
],
"recipient": "[email protected]",
"subject": "New booking enquiry from [your-name]"
}

Повертає

{
"success": true,
"form_id": 3,
"shortcode": "[contact-form-7 id=\"3\" title=\"Restaurant Booking Enquiry\"]"
}

Візуальний огляд

Можливості візуального огляду дають агенту змогу робити знімки екрана живих сторінок і аналізувати їх, забезпечуючи автономну перевірку дизайну, порівняння до/після та перевірки візуальної регресії без потреби в будь-якому розширенні браузера.

capture_screenshot

Робить знімок екрана сторінки WordPress за вказаною URL-адресою за допомогою серверного headless-браузера. Зображення зберігається в Media Library, і повертається CDN URL.

Параметри

ПараметрТипОбов’язковоОпис
urlstringТакПовна URL-адреса сторінки для знімка екрана, напр. https://example.com/about/
widthintegerНіШирина viewport у пікселях. За замовчуванням 1280
heightintegerНіВисота viewport у пікселях. За замовчуванням 800
full_pagebooleanНіЗахопити всю прокручувану сторінку замість лише viewport. За замовчуванням false
delay_msintegerНіМілісекунди очікування після завантаження сторінки перед захопленням, корисно для анімованого вмісту. За замовчуванням 500
labelstringНіЗрозуміла для користувача мітка, що зберігається з вкладенням у Media Library

Повертає

{
"success": true,
"attachment_id": 88,
"url": "https://example.com/wp-content/uploads/2026/04/screenshot-about.png",
"width": 1280,
"height": 800
}

compare_screenshots

Бере два знімки екрана й повертає оцінку візуальної різниці, а також зображення різниці, що підсвічує змінені області. Корисно для підтвердження того, що зміна дизайну дала очікуваний результат, або для виявлення ненавмисних регресій.

Параметри

ПараметрТипОбов’язковоОпис
before_urlstringТакURL сторінки для захоплення стану "до"
after_urlstringТакURL сторінки для захоплення стану "після". Може бути тією самою URL-адресою, якщо порівняння виконується в різні моменти часу
widthintegerНіШирина viewport для обох захоплень. За замовчуванням 1280
thresholdfloatНіПоріг різниці пікселів (0.0–1.0). Пікселі в межах цього допуску вважаються незміненими. За замовчуванням 0.1

Повертає

{
"success": true,
"diff_score": 0.04,
"changed_pixels": 2340,
"total_pixels": 1024000,
"diff_attachment_id": 91,
"diff_url": "https://example.com/wp-content/uploads/2026/04/diff-about.png"
}

diff_score зі значенням 0.0 означає відсутність видимих змін; 1.0 означає, що змінився кожен піксель.


review_page_design

Робить знімок екрана сторінки й надсилає його до мовної моделі для візуального аналізу. Повертає структуровану оцінку, що охоплює макет, типографіку, використання кольорів і питання доступності.

Параметри

ПараметрТипОбов’язковоОпис
urlstringТакПовна URL-адреса сторінки для огляду
focusstringНіСписок областей огляду через кому, на яких слід зробити акцент: layout, typography, colour, accessibility, mobile. За замовчуванням: усі області
widthintegerНіШирина viewport. За замовчуванням 1280

Повертає

{
"success": true,
"screenshot_url": "https://example.com/wp-content/uploads/2026/04/review-about.png",
"assessment": {
"overall": "The page structure is clean and readable. Two accessibility issues detected.",
"layout": "Good visual hierarchy. Hero section is prominent.",
"typography": "Body text is 15px — consider increasing to 16px for readability.",
"colour": "Contrast ratio on the CTA button (#fff on #4a90e2) is 3.1:1 — below the WCAG AA threshold of 4.5:1.",
"accessibility": ["Low contrast on CTA button", "Missing alt text on hero image"],
"suggestions": ["Darken the CTA button to #1a5cb0 to pass WCAG AA", "Add descriptive alt text to the hero image"]
}
}

Установлювані можливості

Реєстр установлюваних можливостей дає змогу розширювати агента додатковими пакетами можливостей, що розповсюджуються як плагіни WordPress. Кожен пакет реєструє одну або кілька можливостей за допомогою стандартного API можливостей.

list_available_abilities

Повертає каталог пакетів можливостей, доступних для встановлення з реєстру.

Параметри

ПараметрТипОбов’язковоОпис
categorystringНіФільтрувати за категорією: ecommerce, seo, media, social, developer

Повертає

{
"packs": [
{
"slug": "gratis-ai-agent-woocommerce",
"name": "WooCommerce Abilities",
"category": "ecommerce",
"version": "1.0.0",
"abilities": ["create_product", "update_pricing", "manage_inventory"],
"installed": false
}
]
}

install_ability

Завантажує та активує пакет можливостей із реєстру.

Параметри

ПараметрТипОбов’язковоОпис
slugstringТакSlug плагіна пакета можливостей

Повертає { "success": true, "slug": "gratis-ai-agent-woocommerce", "abilities_added": 3 }


recommend_plugin

Виконує запит до реєстру можливостей, щоб знайти найкращий плагін для описаного сценарію використання, і, за бажанням, встановлює його.

Параметри

ПараметрТипОбов’язковоОпис
descriptionstringТакОпис бажаної функціональності природною мовою
installbooleanНіЯкщо true, негайно встановлює рекомендований плагін. За замовчуванням false

Приклад

{
"description": "I need a contact form with file upload support and spam protection",
"install": false
}

Повертає

{
"recommendation": {
"slug": "contact-form-7",
"name": "Contact Form 7",
"reason": "Widely adopted, supports file uploads, and integrates with Akismet for spam filtering.",
"alternatives": ["wpforms-lite", "fluent-forms"]
}
}