Категорії (categories)

Ці маршрути дозволяють отримати/створити/оновити/видалити рубрики (категорії).

Можливі маршрути (кінцеві точки маршрутів описані нижче):

/wp/v2/categories // працює з усіма рубриками
/wp/v2/categories/{ID} // працює із зазначеною замість {ID} рубрикою

Клас контролера: WP_REST_Terms_Controller{}




Схема ресурсу

Схема показує всі поля, які є об’єкта: поля об’єкта які поверне запит.

ПараметрКонтекстОпис
id
число
view, edit, embedID терміну (рубрики).
Лише для читання.
count
число
view, editКількість записів що у терміні (рубриці).
Лише для читання.
description
рядок
view, editОпис терміну (рубрики).
link
рядок, uri
view, edit, embedURL терміну (рубрик).
Лише для читання.
name
рядок
view, edit, embedНазва терміну (рубрики).
slug
рядок
view, edit, embedСлаг (ярлик) терміна (рубрики) зазвичай створюється з назви.
taxonomy
рядок
view, edit, embedНазва таксономії.
Лише для читання.
Можливо: category , post_tag , nav_menu , link_category , post_format
parent
число
view, editID батьківського терміну.
meta
об’єкт
view, editМета поля.

Контекст — показує, які поля об’єкта повернутися у відповіді під час створення запиту у вказаному контексті. Наприклад, при оновленні або створенні рубрики повернутися поля, що відповідають контексту edit .




wp/v2/categories

Запит OPTIONS до маршруту поверне повний опис цього маршруту: ендпоінти, їх параметри, схему.

$ curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/categories

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"
                },
                "exclude": {
                    "required": false,
                    "default": [],
                    "description": "Переконатися, що вибірка виключає певні ID.",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "include": {
                    "required": false,
                    "default": [],
                    "description": "Обмежити вибірку до певних ID.",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "Order": {
                    "required": false,
                    "default": "asc",
                    "enum": [
                        "asc",
                        "desc"
                    ],
                    "description": "Упорядкувати сортування атрибуту за зростанням або зменшенням.",
                    "type": "string"
                },
                "orderby": {
                    "required": false,
                    "default": "name",
                    "enum": [
                        "id",
                        "include",
                        "name",
                        "slug",
                        "include_slugs",
                        "term_group",
                        "description",
                        "count"
                    ],
                    "description": "Сортувати колекцію за атрибутами елемента.",
                    "type": "string"
                },
                "hide_empty": {
                    "required": false,
                    "default": false,
                    "description": "Чи приховувати елементи не призначені жодного запису.",
                    "type": "boolean"
                },
                "parent": {
                    "required": false,
                    "description": "Обмежити вибірку елементами, призначеними певному батькові.",
                    "type": "integer"
                },
                "post": {
                    "required": false,
                    "description": "Обмежити вибірку елементами призначеними для певного запису.",
                    "type": "integer"
                },
                "slug": {
                    "required": false,
                    "description": "Обмежити вибірку елементами з одним або більше спеціальними ярликами.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        {
            "methods": [
                "POST"
            ],
            "args": {
                "description": {
                    "required": false,
                    "description": "HTML опис елемента.",
                    "type": "string"
                },
                "name": {
                    "required": true,
                    "description": "HTML назва елемента.",
                    "type": "string"
                },
                "slug": {
                    "required": false,
                    "description": "Буквенно-цифровий ідентифікатор елемента унікальний для його типу.",
                    "type": "string"
                },
                "parent": {
                    "required": false,
                    "description": "ID елемента батька.",
                    "type": "integer"
                },
                "meta": {
                    "required": false,
                    "description": "Мета поля.",
                    "type": "object"
                }
            }
        }
    ],
    "Schema": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "title": "category",
        "type": "object",
        "properties": {
            "id": {
                "description": "Унікальний ідентифікатор елемента.",
                "type": "integer",
                "context": [
                    "view",
                    "embed",
                    "edit"
                ],
                "readonly": true
            },
            "count": {
                "description": "Кількість опублікованих записів елемента.",
                "type": "integer",
                "context": [
                    "view",
                    "edit"
                ],
                "readonly": true
            },
            "description": {
                "description": "HTML опис елемента.",
                "type": "string",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "link": {
                "description": "URL елемент.",
                "type": "string",
                "format": "uri",
                "context": [
                    "view",
                    "embed",
                    "edit"
                ],
                "readonly": true
            },
            "name": {
                "description": "HTML назва елемента.",
                "type": "string",
                "context": [
                    "view",
                    "embed",
                    "edit"
                ],
                "required": true
            },
            "slug": {
                "description": "Буквенно-цифровий ідентифікатор елемента унікальний для його типу.",
                "type": "string",
                "context": [
                    "view",
                    "embed",
                    "edit"
                ]
            },
            "taxonomy": {
                "description": "Тип атрибуції елемента.",
                "type": "string",
                "enum": [
                    "категорії",
                    "post_tag",
                    "nav_menu",
                    "link_category",
                    "post_format"
                ],
                "context": [
                    "view",
                    "embed",
                    "edit"
                ],
                "readonly": true
            },
            "parent": {
                "description": "ID елемента батька.",
                "type": "integer",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "meta": {
                "description": "Мета поля.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "properties": []
            }
        }
    },
    "_links": {
        "self": "http://wptest.ru/wp-json/wp/v2/categories"
    }
}




Список категорій

Отримує список категорій на кшталт get_categories()

Вид запиту

GET /wp/v2/categories

Параметри запиту

context
Область, у якій виконується запит; визначає поля присутні у відповіді.

Можливо:
view, embed, edit

За замовчуванням: view

page
Поточна сторінка пагінації.

За замовчуванням: 1

per_page
Максимальна кількість елементів, що повертаються в результаті.

Типово: 10

search
Обмежте результати тими, які відповідають рядку.
exclude
Виключає рубрики з ID.
include
Показує лише вказані тут рубрики. Вказується ID.
orderby
Яким полем сортувати?

Можливо:
id ,
include ,
name ,
slug ,
term_group ,
description ,
count

Типово: name

order
Як сортувати?

Можливо:
asc, desc

За замовчуванням: asc

hide_empty
Чи сховати порожні рубрики (де немає постів)?
parent
ID батьківської рубрики, дітей яких потрібно отримати.
post
ID посту, рубрики якого потрібно отримати.
slug
Вкажіть слаги рубрик, які потрібно отримати.

Приклад запиту

http://demo.wp-api.org/wp-json/wp/v2/categories

Отримаємо рубрики посту 1

http://demo.wp-api.org/wp-json/wp/v2/categories?post=1




Створення категорії

Алгоритм схожий на роботу функції wp_insert_category()

Вид запиту

Доступ: потрібна авторизація

POST /wp/v2/categories

Параметри запиту

name
(обов’язковий)
Назва терміну (рубрики).
description
Опис терміну (рубрики).
slug
Слаг (ярлик) терміна (рубрики) зазвичай створюється з назви.
parent
ID батьківського терміну.
meta
Мета поля.

Приклад запиту:

POST http://example.com/wp-json/wp/v2/categories?name=Моя рубрика

Відповідь

{
	"id": 6,
	"count": 0,
	"description": "",
	"link": "http://example.com/cat/%d0%bc%d0%be%d1%8f-%d1%80%d1%83%d0%b1%d1%80%d0%b8%d0 %ba%d0%b0/",
	"name": "Моя рубрика",
	"slug": "%d0%bc%d0%be%d1%8f-%d1%80%d1%83%d0%b1%d1%80%d0%b8%d0%ba%d0%b0",
	"taxonomy": "category",
	"parent": 0,
	"meta": [],
	"_links": {
		"self": [
			{
				"href": "http://example.com/wp-json/wp/v2/categories/6"
			}
		],
		"collection": [
			{
				"href": "http://example.com/wp-json/wp/v2/categories"
			}
		],
		"about": [
			{
				"href": "http://example.com/wp-json/wp/v2/taxonomies/category"
			}
		],
		"wp:post_type": [
			{
				"href": "http://example.com/wp-json/wp/v2/posts?categories=6"
			}
		],
		"curies": [
			{
				"name": "wp",
				"href": "https://api.w.org/{rel}",
				"templated": true
			}
		]
	}
}




wp/v2/categories/{id}

Запит OPTIONS до маршруту поверне повний опис цього маршруту: ендпоінти, їх параметри, схему.

$ curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/categories/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"
                }
            }
        },
        {
            "methods": [
                "POST",
                "PUT",
                "PATCH"
            ],
            "args": {
                "id": {
                    "required": false,
                    "description": "Унікальний ідентифікатор елемента.",
                    "type": "integer"
                },
                "description": {
                    "required": false,
                    "description": "HTML опис елемента.",
                    "type": "string"
                },
                "name": {
                    "required": false,
                    "description": "HTML назва елемента.",
                    "type": "string"
                },
                "slug": {
                    "required": false,
                    "description": "Буквенно-цифровий ідентифікатор елемента унікальний для його типу.",
                    "type": "string"
                },
                "parent": {
                    "required": false,
                    "description": "ID елемента батька.",
                    "type": "integer"
                },
                "meta": {
                    "required": false,
                    "description": "Мета поля.",
                    "type": "object"
                }
            }
        },
        {
            "methods": [
                "DELETE"
            ],
            "args": {
                "id": {
                    "required": false,
                    "description": "Унікальний ідентифікатор елемента.",
                    "type": "integer"
                },
                "force": {
                    "required": false,
                    "default": false,
                    "description": "Повинно бути істинно, тому що елементи не підтримують переміщення в кошик.",
                    "type": "boolean"
                }
            }
        }
    ],
    "Schema": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "title": "category",
        "type": "object",
        "properties": {
            "id": {
                "description": "Унікальний ідентифікатор елемента.",
                "type": "integer",
                "context": [
                    "view",
                    "embed",
                    "edit"
                ],
                "readonly": true
            },
            "count": {
                "description": "Кількість опублікованих записів елемента.",
                "type": "integer",
                "context": [
                    "view",
                    "edit"
                ],
                "readonly": true
            },
            "description": {
                "description": "HTML опис елемента.",
                "type": "string",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "link": {
                "description": "URL елемент.",
                "type": "string",
                "format": "uri",
                "context": [
                    "view",
                    "embed",
                    "edit"
                ],
                "readonly": true
            },
            "name": {
                "description": "HTML назва елемента.",
                "type": "string",
                "context": [
                    "view",
                    "embed",
                    "edit"
                ],
                "required": true
            },
            "slug": {
                "description": "Буквенно-цифровий ідентифікатор елемента унікальний для його типу.",
                "type": "string",
                "context": [
                    "view",
                    "embed",
                    "edit"
                ]
            },
            "taxonomy": {
                "description": "Тип атрибуції елемента.",
                "type": "string",
                "enum": [
                    "категорії",
                    "post_tag",
                    "nav_menu",
                    "link_category",
                    "post_format"
                ],
                "context": [
                    "view",
                    "embed",
                    "edit"
                ],
                "readonly": true
            },
            "parent": {
                "description": "ID елемента батька.",
                "type": "integer",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "meta": {
                "description": "Мета поля.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "properties": []
            }
        }
    }
}




Отримання категорії

Алгоритм схожий на роботу функції get_category() .

Вид запиту

GET /wp/v2/categories/{id}

Параметри запиту

id
(число)
Ідентифікатор терміна.
context
(рядок)
Область, у якій виконується запит; визначає поля, присутні у відповіді.

Можливо:
view, embed, edit

За замовчуванням: view

Приклад запиту

http://demo.wp-api.org/wp-json/wp/v2/categories/25




Оновлення категорії

Алгоритм схожий на роботу функції wp_update_category()

Вид запиту

POST /wp/v2/categories/{id}

Параметри запиту

id
(обов’язковий)
ID терміну (рубрики).
name
Назва терміну (рубрики).
description
Опис терміну (рубрики).
slug
Слаг (ярлик) терміна (рубрики) зазвичай створюється з назви.
parent
ID батьківського терміну.
meta
Мета поля.

Приклад запиту

$ curl -X POST http://demo.wp-api.org/wp-json/wp/v2/categories/25 -d '{"name":"Нове ім'я"}'

Або

POST http://example.com/wp-json/wp/v2/categories/6?name=My rubrik&slug=My rubrik

Відповідь

{
	"id": 6,
	"count": 0,
	"description": "",
	"link": "http://example.com/cat/my-rubrik/",
	"name": "My rubrik",
	"slug": "my-rubrik",
	"taxonomy": "category",
	"parent": 0,
	"meta": [],
	"_links": {
		"self": [
			{
				"href": "http://example.com/wp-json/wp/v2/categories/6"
			}
		],
		"collection": [
			{
				"href": "http://example.com/wp-json/wp/v2/categories"
			}
		],
		"about": [
			{
				"href": "http://example.com/wp-json/wp/v2/taxonomies/category"
			}
		],
		"wp:post_type": [
			{
				"href": "http://example.com/wp-json/wp/v2/posts?categories=6"
			}
		],
		"curies": [
			{
				"name": "wp",
				"href": "https://api.w.org/{rel}",
				"templated": true
			}
		]
	}
}




Видалення категорії

Алгоритм схожий на роботу функції wp_delete_term()

Вид запиту

DELETE /wp/v2/categories/{id}

Параметри запиту

id
(обов’язковий)
ID терміну (рубрики).
force
Завжди має бути true, оскільки терміни не підтримують кошик.

Приклад запиту

$ curl -X DELETE http://example.com/wp-json/wp/v2/categories/6?force=true

Відповідь

{
	"deleted": true,
	"previous": {
		"id": 6,
		"count": 0,
		"description": "",
		"link": "http://example.com/cat/my-rubrik/",
		"name": "My rubrik",
		"slug": "my-rubrik",
		"taxonomy": "category",
		"parent": 0,
		"meta": []
	}
}

Відповідь якщо такої рубрики немає

{
	"code": "rest_term_invalid",
	"message": "Елемент не існує.",
	"data": {
		"status": 404
	}
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *