Ці маршрути дозволяють отримати/створити/оновити/видалити коментарі.
Можливі маршрути (кінцеві точки маршрутів описані нижче):
/wp/v2/comments // працює з усіма коментарями
/wp/v2/comments/{ID} // працює із зазначеним замість {ID} коментарем
Клас контролера: WP_REST_Comments_Controller{}
Схема ресурсу
Схема показує всі поля, які є об’єкта: поля об’єкта які поверне запит.
Параметр | Контекст | Опис |
---|
id
число | view, edit, embed | ID коментаря.
Лише для читання. |
author
число | view, edit, embed | Ідентифікатор (ID) автора коментаря, якщо його авторизовано. |
author_email
рядок | edit | Адресу електронної пошти автора коментаря. |
author_ip
рядок | edit | IP адреса автора коментаря. |
author_name
рядок | view, edit, embed | Ім’я автора коментаря, що відображається. |
author_url
рядок | view, edit, embed | Посилання на сайт автора коментаря. |
author_user_agent
рядок | edit | Користувач-агент автора коментаря. |
content
об’єкт | view, edit, embed | Зміст коментаря. |
date
рядок | view, edit, embed | Дата публікації коментаря у часовому поясі сайту. |
date_gmt
рядок/datetime | view, edit | Дата публікації коментарів, як GMT. |
link
рядок | view, edit, embed | Посилання на коментар
Лише для читання. |
parent
число | view, edit, embed | ID батьківського коментаря. |
post
число | view, edit | ID запису, до якого залишено коментар. |
status
рядок | view, edit | Статус коментаря (approve, spam тощо). |
type
рядок | view, edit, embed | Тип коментарю.
Лише для читання. |
author_avatar_urls
об’єкт | view, edit, embed | Посилання на аватар автора коментаря.
Лише для читання. |
meta
об’єкт | view, edit | Метаполь коментарі. |
Запит OPTIONS до маршруту поверне повний опис цього маршруту: ендпоінти, їх параметри, схему.
$ curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/comments
GitHub
{
"namespace": "wp/v2",
"methods": [
"GET",
"POST"
],
"endpoints": [
{
"methods": [
"GET"
],
"args": {
"context": {
"required": false,
"default": "view",
"enum": [
"view",
"embed",
"edit"
],
"description": "Рамки, в яких зроблено запит, визначають поля відповіді.",
"type": "string"
},
"page": {
"required": false,
"default": 1,
"description": "Поточна сторінка колекції.",
"type": "integer"
},
"per_page": {
"required": false,
"default": 10,
"description": "Максимальна кількість об'єктів, що повертається у вибірці.",
"type": "integer"
},
"search": {
"required": false,
"description": "Обмежити результати до відповідних рядків.",
"type": "string"
},
"after": {
"required": false,
"description": "Обмежити відповідь коментарями, опублікованими після заданої ISO8601 сумісної дати.",
"type": "string"
},
"author": {
"required": false,
"description": "Обмежити вибірку коментарями призначеними певному ID користувача. Потрібно авторизації.",
"type": "array",
"items": {
"type": "integer"
}
},
"author_exclude": {
"required": false,
"description": "Переконатися, що вибірка виключає коментарі призначені певному ID користувача. Вимагає авторизації.",
"type": "array",
"items": {
"type": "integer"
}
},
"author_email": {
"required": false,
"description": "Обмежити вибірку до автора, який має певний e-mail. Вимагає авторизації.",
"type": "string"
},
"before": {
"required": false,
"description": "Обмежити відповідь коментарями, опублікованими до заданої ISO8601 сумісної дати.",
"type": "string"
},
"exclude": {
"required": false,
"default": [],
"description": "Переконатися, що вибірка виключає певні ID.",
"type": "array",
"items": {
"type": "integer"
}
},
"include": {
"required": false,
"default": [],
"description": "Обмежити вибірку до певних ID.",
"type": "array",
"items": {
"type": "integer"
}
},
"offset": {
"required": false,
"description": "Зсув вибірки на певну кількість об'єктів.",
"type": "integer"
},
"Order": {
"required": false,
"default": "desc",
"enum": [
"asc",
"desc"
],
"description": "Упорядкувати сортування атрибуту за зростанням або зменшенням.",
"type": "string"
},
"orderby": {
"required": false,
"default": "date_gmt",
"enum": [
"date",
"date_gmt",
"id",
"include",
"post",
"parent",
"type"
],
"description": "Сортувати колекцію за атрибутом об'єкта.",
"type": "string"
},
"parent": {
"required": false,
"default": [],
"description": "Обмежити вибірку коментарями з певними батьківськими ID.",
"type": "array",
"items": {
"type": "integer"
}
},
"parent_exclude": {
"required": false,
"default": [],
"description": "Переконатися, що вибірка виключає певні батьківські ID.",
"type": "array",
"items": {
"type": "integer"
}
},
"post": {
"required": false,
"default": [],
"description": "Обмежити вибірку коментарями з визначеними певними ID записів.",
"type": "array",
"items": {
"type": "integer"
}
},
"status": {
"required": false,
"default": "approve",
"description": "Обмежити вибірку коментарями з певним статусом. Потребує авторизації.",
"type": "string"
},
"type": {
"required": false,
"default": "comment",
"description": "Обмежити вибірку коментарями з певним типом. Вимагає авторизації.",
"type": "string"
},
"password": {
"required": false,
"description": "Пароль для запису, якщо він захищений паролем.",
"type": "string"
}
}
},
{
"methods": [
"POST"
],
"args": {
"author": {
"required": false,
"description": "ID об'єкта користувача, якщо автор - користувач.",
"type": "integer"
},
"author_email": {
"required": false,
"description": "Адреса e-mail автора об'єкта.",
"type": "string"
},
"author_ip": {
"required": false,
"description": "IP-адреса автора об'єкта.",
"type": "string"
},
"author_name": {
"required": false,
"description": "Ім'я, що відображається для автора об'єкта.",
"type": "string"
},
"author_url": {
"required": false,
"description": "URL для автора об'єкта.",
"type": "string"
},
"author_user_agent": {
"required": false,
"description": "Клієнтська програма для автора об'єкта.",
"type": "string"
},
"content": {
"required": false,
"description": "Вміст об'єкта.",
"type": "object"
},
"date": {
"required": false,
"description": "Дата публікації об'єкта за тимчасовою зоною сайту.",
"type": "string"
},
"date_gmt": {
"required": false,
"description": "Час публікації об'єкта, за GMT.",
"type": "string"
},
"parent": {
"required": false,
"default": 0,
"description": "ID батька об'єкта.",
"type": "integer"
},
"post": {
"required": false,
"default": 0,
"description": "ID асоційованого об'єкта запису.",
"type": "integer"
},
"status": {
"required": false,
"description": "Стан об'єкта.",
"type": "string"
},
"meta": {
"required": false,
"description": "Мета поля.",
"type": "object"
}
}
}
],
"Schema": {
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "comment",
"type": "object",
"properties": {
"id": {
"description": "Унікальний ідентифікатор об'єкта.",
"type": "integer",
"context": [
"view",
"edit",
"embed"
],
"readonly": true
},
"author": {
"description": "ID об'єкта користувача, якщо автор - користувач.",
"type": "integer",
"context": [
"view",
"edit",
"embed"
]
},
"author_email": {
"description": "Адреса e-mail автора об'єкта.",
"type": "string",
"format": "email",
"context": [
"edit"
]
},
"author_ip": {
"description": "IP-адреса автора об'єкта.",
"type": "string",
"format": "ip",
"context": [
"edit"
]
},
"author_name": {
"description": "Ім'я, що відображається для автора об'єкта.",
"type": "string",
"context": [
"view",
"edit",
"embed"
]
},
"author_url": {
"description": "URL для автора об'єкта.",
"type": "string",
"format": "uri",
"context": [
"view",
"edit",
"embed"
]
},
"author_user_agent": {
"description": "Клієнтська програма для автора об'єкта.",
"type": "string",
"context": [
"edit"
]
},
"content": {
"description": "Вміст об'єкта.",
"type": "object",
"context": [
"view",
"edit",
"embed"
],
"properties": {
"raw": {
"description": "Вміст об'єкта, як він існує в базі даних.",
"type": "string",
"context": [
"edit"
]
},
"rendered": {
"description": "HTML вміст об'єкта перетворений для показу.",
"type": "string",
"context": [
"view",
"edit",
"embed"
],
"readonly": true
}
}
},
"date": {
"description": "Дата публікації об'єкта за тимчасовою зоною сайту.",
"type": "string",
"format": "date-time",
"context": [
"view",
"edit",
"embed"
]
},
"date_gmt": {
"description": "Час публікації об'єкта, за GMT.",
"type": "string",
"format": "date-time",
"context": [
"view",
"edit"
]
},
"link": {
"description": "URL об'єкта.",
"type": "string",
"format": "uri",
"context": [
"view",
"edit",
"embed"
],
"readonly": true
},
"parent": {
"description": "ID батька об'єкта.",
"type": "integer",
"context": [
"view",
"edit",
"embed"
],
"default": 0
},
"post": {
"description": "ID асоційованого об'єкта запису.",
"type": "integer",
"context": [
"view",
"edit"
],
"default": 0
},
"status": {
"description": "Стан об'єкта.",
"type": "string",
"context": [
"view",
"edit"
]
},
"type": {
"description": "Тип коментаря для об'єкта.",
"type": "string",
"context": [
"view",
"edit",
"embed"
],
"readonly": true
},
"author_avatar_urls": {
"description": "URL аватари автора об'єкта.",
"type": "object",
"context": [
"view",
"edit",
"embed"
],
"readonly": true,
"properties": {
"24": {
"description": "URL аватари з розміром зображення в 24 пікселів.",
"type": "string",
"format": "uri",
"context": [
"embed",
"view",
"edit"
]
},
"48": {
"description": "URL аватари з розміром зображення в 48 пікселів.",
"type": "string",
"format": "uri",
"context": [
"embed",
"view",
"edit"
]
},
"96": {
"description": "URL аватари з розміром зображення в 96 пікселів.",
"type": "string",
"format": "uri",
"context": [
"embed",
"view",
"edit"
]
}
}
},
"meta": {
"description": "Мета поля.",
"type": "object",
"context": [
"view",
"edit"
],
"properties": []
}
}
},
"_links": {
"self": "http://wp-test.ru/wp-json/wp/v2/comments"
}
}
Список коментарів
Алгоритм схожий на роботу функції get_comments() .
Вид запиту
GET /wp/v2/comments
Параметри запиту
-
context
-
Область, у якій виконується запит; визначає поля присутні у відповіді.
Можливо:
view, embed, edit
За замовчуванням: view
-
page
-
Поточна сторінка пагінації.
За замовчуванням: 1
-
per_page
-
Максимальна кількість елементів, що повертаються в результаті.
Типово: 10
-
search
-
Обмежте результати тими, які відповідають рядку.
-
after
-
Обмежити відповідь за коментарями, опублікованими після заданої дати, що відповідає ISO8601.
-
before
-
Обмежити відповідь за коментарями, опублікованими до заданої дати, що відповідає ISO8601.
-
author
-
Вказує коментарі яких авторів (вказується їхній ID) треба повернути. Потрібна авторизація.
-
author_exclude
-
Вказує коментарі яких авторів (вказується їхній ID) не потрібно повертати. Потрібна авторизація.
-
author_email
-
Вказує коментарі яких авторів (вказується їхня ел. пошта) треба повернути. Потрібна авторизація.
-
exclude
-
Виключає коментарі щодо ID.
-
include
-
Показує лише вказані тут коментарі. Вказується ID.
-
offset
-
Усунення (відступ) набору результатів на вказане число.
-
orderby
-
Яким полем сортувати?
Можливо:
date ,
date_gmt ,
id ,
include ,
post ,
parent ,
type
Типово: date_gmt
-
order
-
Як сортувати?
Можливо:
asc, desc
За замовчуванням: desc
-
status
-
Обмеження вибірки за одним статусом чи декільком. Потрібна авторизація.
За замовчуванням: approve
-
parent
-
Обмеження вибірки на основі ID батьківського коментаря чи коментарів.
-
parent_exclude
-
Виключає з набору коментарі на основі ID батьківського коментаря чи коментарів.
-
post:
-
Обмеження вибірки на основі ID запису (або записів), до якого прикріплено коментарі.
-
type
-
Обмежити вибірку з урахуванням типу коментаря. Потрібна авторизація.
За замовчуванням: comment
-
password
-
Пароль для посту, якщо він захищений паролем.
Приклад запиту
Посилання робітники можна відкрити в браузері і подивитися результат.
1) Запит на отримання масиву всіх коментарів:
https://demo.wp-api.org/wp-json/wp/v2/comments/
Повернеться масив об’єктів, де кожен об’єкт коментаря схожий на те, що описаний у пункті “Отримання коментаря”:
[
{
... дані коментаря <id> ...
},
{
... дані коментаря <id> ...
},
{
... дані коментаря <id> ...
}
]
Створення коментаря
Алгоритм схожий на роботу функції wp_insert_comment() .
Вид запиту
Доступ: потрібна авторизація
POST /wp/v2/comments
Параметри запиту
-
author
-
ID користувача, якщо він є зареєстрованим.
-
author_email
-
Електронна пошта користувача
-
author_ip
-
IP-адреса користувача.
-
author_name
-
Ім’я автора коментаря, що відображається.
-
author_url
-
Посилання на сайт автора коментаря.
-
author_user_agent
-
Користувач-агент автора коментаря.
-
content
-
Зміст коментаря.
-
date
-
Дата публікації коментаря у часовому поясі сайту.
-
date_gmt
-
Дата публікації коментарів, як GMT.
-
parent
-
ID батьківського коментаря.
-
post
-
ID запису, до якого буде залишено коментар.
-
status
-
Статус коментарів.
-
meta
-
Метаполь коментарі.
Приклад запиту
POST http://example.com/wp-json/wp/v2/comments/?author_name=Василь&[email protected]&content=Відмінна стаття
Запит OPTIONS до маршруту поверне повний опис цього маршруту: ендпоінти, їх параметри, схему.
$ curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/comments/1
GitHub
{
"namespace": "wp/v2",
"methods": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE"
],
"endpoints": [
{
"methods": [
"GET"
],
"args": {
"id": {
"required": false,
"description": "Унікальний ідентифікатор об'єкта.",
"type": "integer"
},
"context": {
"required": false,
"default": "view",
"enum": [
"view",
"embed",
"edit"
],
"description": "Рамки, в яких зроблено запит, визначають поля відповіді.",
"type": "string"
},
"password": {
"required": false,
"description": "Пароль для батьківського запису коментаря (якщо запис захищений паролем).",
"type": "string"
}
}
},
{
"methods": [
"POST",
"PUT",
"PATCH"
],
"args": {
"id": {
"required": false,
"description": "Унікальний ідентифікатор об'єкта.",
"type": "integer"
},
"author": {
"required": false,
"description": "ID об'єкта користувача, якщо автор - користувач.",
"type": "integer"
},
"author_email": {
"required": false,
"description": "Адреса e-mail автора об'єкта.",
"type": "string"
},
"author_ip": {
"required": false,
"description": "IP-адреса автора об'єкта.",
"type": "string"
},
"author_name": {
"required": false,
"description": "Ім'я, що відображається для автора об'єкта.",
"type": "string"
},
"author_url": {
"required": false,
"description": "URL для автора об'єкта.",
"type": "string"
},
"author_user_agent": {
"required": false,
"description": "Клієнтська програма для автора об'єкта.",
"type": "string"
},
"content": {
"required": false,
"description": "Вміст об'єкта.",
"type": "object"
},
"date": {
"required": false,
"description": "Дата публікації об'єкта за тимчасовою зоною сайту.",
"type": "string"
},
"date_gmt": {
"required": false,
"description": "Час публікації об'єкта, за GMT.",
"type": "string"
},
"parent": {
"required": false,
"description": "ID батька об'єкта.",
"type": "integer"
},
"post": {
"required": false,
"description": "ID асоційованого об'єкта запису.",
"type": "integer"
},
"status": {
"required": false,
"description": "Стан об'єкта.",
"type": "string"
},
"meta": {
"required": false,
"description": "Мета поля.",
"type": "object"
}
}
},
{
"methods": [
"DELETE"
],
"args": {
"id": {
"required": false,
"description": "Унікальний ідентифікатор об'єкта.",
"type": "integer"
},
"force": {
"required": false,
"default": false,
"description": "Чи ігнорувати переміщення в кошик і примусово видаляти.",
"type": "boolean"
},
"password": {
"required": false,
"description": "Пароль для батьківського запису коментаря (якщо запис захищений паролем).",
"type": "string"
}
}
}
],
"Schema": {
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "comment",
"type": "object",
"properties": {
"id": {
"description": "Унікальний ідентифікатор об'єкта.",
"type": "integer",
"context": [
"view",
"edit",
"embed"
],
"readonly": true
},
"author": {
"description": "ID об'єкта користувача, якщо автор - користувач.",
"type": "integer",
"context": [
"view",
"edit",
"embed"
]
},
"author_email": {
"description": "Адреса e-mail автора об'єкта.",
"type": "string",
"format": "email",
"context": [
"edit"
]
},
"author_ip": {
"description": "IP-адреса автора об'єкта.",
"type": "string",
"format": "ip",
"context": [
"edit"
]
},
"author_name": {
"description": "Ім'я, що відображається для автора об'єкта.",
"type": "string",
"context": [
"view",
"edit",
"embed"
]
},
"author_url": {
"description": "URL для автора об'єкта.",
"type": "string",
"format": "uri",
"context": [
"view",
"edit",
"embed"
]
},
"author_user_agent": {
"description": "Клієнтська програма для автора об'єкта.",
"type": "string",
"context": [
"edit"
]
},
"content": {
"description": "Вміст об'єкта.",
"type": "object",
"context": [
"view",
"edit",
"embed"
],
"properties": {
"raw": {
"description": "Вміст об'єкта, як він існує в базі даних.",
"type": "string",
"context": [
"edit"
]
},
"rendered": {
"description": "HTML вміст об'єкта перетворений для показу.",
"type": "string",
"context": [
"view",
"edit",
"embed"
],
"readonly": true
}
}
},
"date": {
"description": "Дата публікації об'єкта за тимчасовою зоною сайту.",
"type": "string",
"format": "date-time",
"context": [
"view",
"edit",
"embed"
]
},
"date_gmt": {
"description": "Час публікації об'єкта, за GMT.",
"type": "string",
"format": "date-time",
"context": [
"view",
"edit"
]
},
"link": {
"description": "URL об'єкта.",
"type": "string",
"format": "uri",
"context": [
"view",
"edit",
"embed"
],
"readonly": true
},
"parent": {
"description": "ID батька об'єкта.",
"type": "integer",
"context": [
"view",
"edit",
"embed"
],
"default": 0
},
"post": {
"description": "ID асоційованого об'єкта запису.",
"type": "integer",
"context": [
"view",
"edit"
],
"default": 0
},
"status": {
"description": "Стан об'єкта.",
"type": "string",
"context": [
"view",
"edit"
]
},
"type": {
"description": "Тип коментаря для об'єкта.",
"type": "string",
"context": [
"view",
"edit",
"embed"
],
"readonly": true
},
"author_avatar_urls": {
"description": "URL аватари автора об'єкта.",
"type": "object",
"context": [
"view",
"edit",
"embed"
],
"readonly": true,
"properties": {
"24": {
"description": "URL аватари з розміром зображення в 24 пікселів.",
"type": "string",
"format": "uri",
"context": [
"embed",
"view",
"edit"
]
},
"48": {
"description": "URL аватари з розміром зображення в 48 пікселів.",
"type": "string",
"format": "uri",
"context": [
"embed",
"view",
"edit"
]
},
"96": {
"description": "URL аватари з розміром зображення в 96 пікселів.",
"type": "string",
"format": "uri",
"context": [
"embed",
"view",
"edit"
]
}
}
},
"meta": {
"description": "Мета поля.",
"type": "object",
"context": [
"view",
"edit"
],
"properties": []
}
}
}
}
Отримання коментарю
Алгоритм схожий на роботу функції get_comment() .
Вид запиту
Доступ: публічний
GET /wp/v2/comments/{id}
Параметри запиту
-
id
(обов’язковий) -
Унікальний ідентифікатор. Вказується у маршруті.
-
context
-
Область, у якій виконується запит; визначає поля, присутні у відповіді. Можливо
view ,
embed ,
edit .Типово: view
-
password
-
Пароль для отримання доступу до захищеного паролем запису, коментарі до якого потрібно отримати.
Приклад запиту
$ curl http://demo.wp-api.org/wp-json/wp/v2/comments/{id}
Приклад запиту об’єкт коментаря ID=1:
https://demo.wp-api.org/wp-json/wp/v2/comments/1
Відповідь:
{
"id": 1,
"post": 1,
"parent": 0,
"author": 0,
"author_name": "A WordPress Commenter",
"author_url": "http://wp-api.org/",
"date": "2017-05-23T06:25:50",
"date_gmt": "2017-05-23T06:25:50",
"content": {
"rendered": "<p>Hi, this is a comment.<br />nTo get started with moderating, editing, and deleting comments, please visit comments screen in the dashboard.<br />nCommenter avatars come from <a href="https://gravatar.com">Gravatar</a>.</p>n"
},
"link": "https://demo.wp-api.org/2017/05/23/hello-world/#comment-1",
"status": "approved",
"type": "comment",
"author_avatar_urls": {
"24": "https://secure.gravatar.com/avatar/d7a973c7dab26985da5f961be7b74480?s=24&d=mm&r=g",
"48": "https://secure.gravatar.com/avatar/d7a973c7dab26985da5f961be7b74480?s=48&d=mm&r=g",
"96": "https://secure.gravatar.com/avatar/d7a973c7dab26985da5f961be7b74480?s=96&d=mm&r=g"
},
"meta": [],
"_links": {
"self": [
{
"href": "https://demo.wp-api.org/wp-json/wp/v2/comments/1"
}
],
"collection": [
{
"href": "https://demo.wp-api.org/wp-json/wp/v2/comments"
}
],
"up": [
{
"embeddable": true,
"post_type": "post",
"href": "https://demo.wp-api.org/wp-json/wp/v2/posts/1"
}
],
"children": [
{
"href": "https://demo.wp-api.org/wp-json/wp/v2/comments?parent=1"
}
]
}
}
Оновлення коментаря
Алгоритм схожий на роботу wp_update_comment() .
Вид запиту
Доступ: потрібна авторизація
POST /wp/v2/comments/{id}
Параметри запиту
-
id
-
ID коментаря, який потрібно оновити. Вказується у маршруті.
-
author
-
ID користувача, якщо він є зареєстрованим.
-
author_email
-
Електронна пошта користувача
-
author_ip
-
IP-адреса користувача.
-
author_name
-
Ім’я автора коментаря, що відображається.
-
author_url
-
Посилання на сайт автора коментаря.
-
author_user_agent
-
Користувач-агент автора коментаря.
-
content
-
Зміст коментаря.
-
date
-
Дата публікації коментаря у часовому поясі сайту.
-
date_gmt
-
Дата публікації коментарів, як GMT.
-
parent
-
ID батьківського коментаря.
-
post
-
ID запису, до якого буде залишено коментар.
-
status
-
Статус коментарів.
-
meta
-
Метаполь коментарі.
Приклад запиту
Обновимо контент коментаря з ID=1 :
POST http://example.com/wp-json/wp/v2/comments/?id=1&content=Хороша стаття
Видалення коментаря
Алгоритм схожий на роботу функції wp_delete_comment() .
Вид запиту
Доступ: потрібна авторизація
DELETE /wp/v2/comments/{id}
Параметри запиту
-
id
-
ID коментаря, який потрібно видалити. Вказується у маршруті.
-
force
-
Примусове вилучення. Якщо потрібно видалити коментар, не ставлячи його в кошик, ставимо true.
Типово: false
-
password
-
Пароль для отримання доступу до захищеного паролем запису, коментарі до якого потрібно видалити.
Приклад запиту
$ curl -X DELETE http://demo.wp-api.org/wp-json/wp/v2/comments/<id>