Теги (tags)

Эти маршруты позволяют получить/создать/обновить/удалить метки (теги).

Возможные маршруты (конечные точки маршрутов описаны ниже):

/wp/v2/tags         // работает со всеми метками
/wp/v2/tags/{ID}    // работает с указанной вместо {ID} меткой

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

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

Схема показывает все поля, которые существуют для объекта: поля объекта которые вернет запрос.

Параметр Контекст Описание
id
число
view, edit, embed ID термина (метки).
Только для чтения.
count
число
view, edit Количество записей находящихся в термине (метке).
Только для чтения.
description
строка
view, edit Описание термина (метки).
link
строка, uri
view, edit, embed URL термина (метки).
Только для чтения.
name
строка
view, edit, embed Название термина (метки).
slug
строка
view, edit, embed Слаг (ярлык) термина (метки), обычно создается из названия.
taxonomy
строка
view, edit, embed Название таксономии.
Только для чтения.
Может быть: category, post_tag, nav_menu, link_category, post_format
parent
число
view, edit ID родительского термина.
meta
объект
view, edit Мета поля.

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

wp/v2/tags

Запрос OPTIONS к маршруту вернет полное описание этого маршрута: эндпоинты их параметры, схему.

$ curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/tags
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"
                    }
                },
                "offset": {
                    "required": false,
                    "description": "Сдвиг выборки на определенное число объектов.",
                    "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"
                },
                "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"
                },
                "meta": {
                    "required": false,
                    "description": "Мета поля.",
                    "type": "object"
                }
            }
        }
    ],
    "schema": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "title": "tag",
        "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": [
                    "category",
                    "post_tag",
                    "nav_menu",
                    "link_category",
                    "post_format"
                ],
                "context": [
                    "view",
                    "embed",
                    "edit"
                ],
                "readonly": true
            },
            "meta": {
                "description": "Мета поля.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "properties": []
            }
        }
    },
    "_links": {
        "self": "http://wptest.ru/wp-json/wp/v2/tags"
    }
}

Список меток

Получает список меток, на подобие get_tags()

Вид запроса

GET /wp/v2/tags

Параметры запроса

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/tags

Получим метки поста 1

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

Создание метки

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

Вид запроса

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

POST /wp/v2/tags

Параметры запроса

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

Пример запроса:

POST http://example.com/wp-json/wp/v2/tags?name=Моя метка

Ответ

{
	"id": 6,
	"count": 0,
	"description": "",
	"link": "http://example.com/tag/moya-metka/",
	"name": "Моя метока",
	"slug": "moya-metka",
	"taxonomy": "post_tag",
	"parent": 0,
	"meta": [],
	"_links": {
		"self": [
			{
				"href": "http://example.com/wp-json/wp/v2/tags/6"
			}
		],
		"collection": [
			{
				"href": "http://example.com/wp-json/wp/v2/tags"
			}
		],
		"about": [
			{
				"href": "http://example.com/wp-json/wp/v2/taxonomies/post_tag"
			}
		],
		"wp:post_type": [
			{
				"href": "http://example.com/wp-json/wp/v2/posts?tags=6"
			}
		],
		"curies": [
			{
				"name": "wp",
				"href": "https://api.w.org/{rel}",
				"templated": true
			}
		]
	}
}

wp/v2/tags/{id}

Запрос OPTIONS к маршруту вернет полное описание этого маршрута: эндпоинты их параметры, схему.

$ curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/tags/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"
                },
                "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": "tag",
        "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": [
                    "category",
                    "post_tag",
                    "nav_menu",
                    "link_category",
                    "post_format"
                ],
                "context": [
                    "view",
                    "embed",
                    "edit"
                ],
                "readonly": true
            },
            "meta": {
                "description": "Мета поля.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "properties": []
            }
        }
    }
}

Получение метки

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

Вид запроса

GET /wp/v2/tags/{id}

Параметры запроса

id(число)
Идентификатор термина.
context(строка)
Область, в которой выполняется запрос; определяет поля, присутствующие в ответе.
Может быть: view, embed, edit
По умолчанию: view

Пример запроса

Получим метку 25

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

Обновление метки

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

Вид запроса

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

POST /wp/v2/tags/{id}

Параметры запроса

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

Пример запроса

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

Или

POST http://example.com/wp-json/wp/v2/tags/6?name=Моя метка&slug=my tag

Ответ

{
	"id": 6,
	"count": 0,
	"description": "",
	"link": "http://example.com/tag/moya-metka/",
	"name": "Моя метка",
	"slug": "my-tag",
	"taxonomy": "post_tag",
	"parent": 0,
	"meta": [],
	"_links": {
		"self": [
			{
				"href": "http://example.com/wp-json/wp/v2/tags/6"
			}
		],
		"collection": [
			{
				"href": "http://example.com/wp-json/wp/v2/tags"
			}
		],
		"about": [
			{
				"href": "http://example.com/wp-json/wp/v2/taxonomies/post_tag"
			}
		],
		"wp:post_type": [
			{
				"href": "http://example.com/wp-json/wp/v2/posts?tags=6"
			}
		],
		"curies": [
			{
				"name": "wp",
				"href": "https://api.w.org/{rel}",
				"templated": true
			}
		]
	}
}

Удаление метки

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

Вид запроса

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

DELETE /wp/v2/tags/{id}

Параметры запроса

id(обязательный)
ID термина (метки).
force
Всегда должен быть true, так как термины не поддерживают корзину.

Пример запроса

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

Ответ

{
	"deleted": true,
	"previous": {
		"id": 6,
		"count": 0,
		"description": "",
		"link": "http://example.com/tag/moya-metka/",
		"name": "Моя метка",
		"slug": "moya-metka",
		"taxonomy": "post_tag",
		"parent": 0,
		"meta": []
	}
}

Ответ если такой метки нет

{
	"code": "rest_term_invalid",
	"message": "Элемент не существует.",
	"data": {
		"status": 404
	}
}