WordPress как на ладони
rgbcode is looking for WordPress developers. Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

Записи (posts)

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

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

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

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

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

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

Параметр Контекст Описание
date
строка
view, edit, embed Дата публикации записи в часовом поясе сайта.
date_gmt
строка/datetime
view, edit Дата публикации записи, как GMT.
guid
объект
view, edit Глобальный уникальный идентификатор записи.
Только для чтения.
id
число
view, edit, embed Уникальный идентификатор записи.
Только для чтения.
link
строка
view, edit, embed Ссылка на запись.
Только для чтения.
modified
строка
view, edit Дата последнего изменения записи в часовом поясе сайта.
Только для чтения.
modified_gmt
строка
view, edit Дата последнего изменения записи, как GMT.
Только для чтения.
slug
строка
view, edit, embed Алфавитно-цифровой идентификатор записи, уникальный для его типа. Ещё называют ярлыком.
status
строка
view, edit Статус записи.
Может быть publish, future, draft, pending, private.
type
строка
view, edit, embed Тип записи.
Только для чтения.
password
строка
edit Пароль для защиты доступа к контенту и цитате (отрывку).
title
объект
view, edit, embed Заголовок записи.
content
объект
view, edit Контент записи.
author
число
view, edit, embed Идентификатор (ID) автора записи
excerpt
объект
view, edit, embed Цитата (отрывок) записи.
featured_media
число
view, edit, embed Идентификатор (ID) миниатюры (изображения) записи.
comment_status
строка
view, edit Можно ли оставлять комментарии к записи или нет.
Может быть open или closed.
ping_status
строка
view, edit Статус пингов/трэкбэков, может быть open или closed.
format
строка
view, edit Формат записи.
Может быть: standard, aside, chat, gallery, link, image, quote, status, video, audio.
meta
массив
view, edit Значения метаполей.
Массив объектов.
sticky
true/false
view, edit Является ли запись липкой или нет.
template
строка
view, edit Файл темы, который используется для отображения записи.
categories
массив
view, edit Массив с ID рубрик, к которым принадлежит запись.
tags
массив
view, edit Массив с ID меток (тегов), к которым принадлежит запись.

wp/v2/posts

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

$ curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/posts
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"
				},
				"date": {
					"required": false,
					"description": "Дата публикации объекта, по временной зоне сайта.",
					"type": "string"
				},
				"date_gmt": {
					"required": false,
					"description": "Время публикации объекта, по GMT.",
					"type": "string"
				},
				"slug": {
					"required": false,
					"description": "Буквенно-цифровой идентификатор для объекта уникальный для его типа.",
					"type": "string"
				},
				"status": {
					"required": false,
					"enum": [
						"publish",
						"future",
						"draft",
						"pending",
						"private"
					],
					"description": "Именованный статус для объекта.",
					"type": "string"
				},
				"password": {
					"required": false,
					"description": "Пароль для защиты содержания и отрывка.",
					"type": "string"
				},
				"title": {
					"required": false,
					"description": "Название для объекта.",
					"type": "object"
				},
				"content": {
					"required": false,
					"description": "Содержимое объекта.",
					"type": "object"
				},
				"author": {
					"required": false,
					"description": "ID автора объекта.",
					"type": "integer"
				},
				"excerpt": {
					"required": false,
					"description": "Отрывок объекта.",
					"type": "object"
				},
				"featured_media": {
					"required": false,
					"description": "ID избранного медиа для объекта.",
					"type": "integer"
				},
				"comment_status": {
					"required": false,
					"enum": [
						"open",
						"closed"
					],
					"description": "Открыты ли комментарии для объекта.",
					"type": "string"
				},
				"ping_status": {
					"required": false,
					"enum": [
						"open",
						"closed"
					],
					"description": "Принимает ли объект уведомления.",
					"type": "string"
				},
				"format": {
					"required": false,
					"enum": [
						"standard",
						"aside",
						"chat",
						"gallery",
						"link",
						"image",
						"quote",
						"status",
						"video",
						"audio"
					],
					"description": "Формат для объекта.",
					"type": "string"
				},
				"meta": {
					"required": false,
					"description": "Мета поля.",
					"type": "object"
				},
				"sticky": {
					"required": false,
					"description": "Считать ли объект прилепленным или нет.",
					"type": "boolean"
				},
				"template": {
					"required": false,
					"description": "Файл темы используемый для показа объекта.",
					"type": "string"
				},
				"categories": {
					"required": false,
					"description": "Элементы назначенные объекту в таксономии category.",
					"type": "array",
					"items": {
						"type": "integer"
					}
				},
				"tags": {
					"required": false,
					"description": "Элементы назначенные объекту в таксономии post_tag.",
					"type": "array",
					"items": {
						"type": "integer"
					}
				}
			}
		},
		{
			"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": "post",
		"type": "object",
		"properties": {
			"date": {
				"description": "Дата публикации объекта, по временной зоне сайта.",
				"type": "string",
				"format": "date-time",
				"context": [
					"view",
					"edit",
					"embed"
				]
			},
			"date_gmt": {
				"description": "Время публикации объекта, по GMT.",
				"type": "string",
				"format": "date-time",
				"context": [
					"view",
					"edit"
				]
			},
			"guid": {
				"description": "Глобальный уникальный идентификатор для объекта.",
				"type": "object",
				"context": [
					"view",
					"edit"
				],
				"readonly": true,
				"properties": {
					"raw": {
						"description": "GUID для объекта, как он существует в базе данных.",
						"type": "string",
						"context": [
							"edit"
						],
						"readonly": true
					},
					"rendered": {
						"description": "GUID для объекта, преобразованный для показа.",
						"type": "string",
						"context": [
							"view",
							"edit"
						],
						"readonly": true
					}
				}
			},
			"id": {
				"description": "Уникальный идентификатор для объекта.",
				"type": "integer",
				"context": [
					"view",
					"edit",
					"embed"
				],
				"readonly": true
			},
			"link": {
				"description": "URL объекта.",
				"type": "string",
				"format": "uri",
				"context": [
					"view",
					"edit",
					"embed"
				],
				"readonly": true
			},
			"modified": {
				"description": "Дата последнего изменения объекта, по временной зоне сайта.",
				"type": "string",
				"format": "date-time",
				"context": [
					"view",
					"edit"
				],
				"readonly": true
			},
			"modified_gmt": {
				"description": "Дата последнего изменения объекта, в GMT.",
				"type": "string",
				"format": "date-time",
				"context": [
					"view",
					"edit"
				],
				"readonly": true
			},
			"slug": {
				"description": "Буквенно-цифровой идентификатор для объекта уникальный для его типа.",
				"type": "string",
				"context": [
					"view",
					"edit",
					"embed"
				]
			},
			"status": {
				"description": "Именованный статус для объекта.",
				"type": "string",
				"enum": [
					"publish",
					"future",
					"draft",
					"pending",
					"private"
				],
				"context": [
					"view",
					"edit"
				]
			},
			"type": {
				"description": "Тип записи для объекта.",
				"type": "string",
				"context": [
					"view",
					"edit",
					"embed"
				],
				"readonly": true
			},
			"password": {
				"description": "Пароль для защиты содержания и отрывка.",
				"type": "string",
				"context": [
					"edit"
				]
			},
			"title": {
				"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
					}
				}
			},
			"content": {
				"description": "Содержимое объекта.",
				"type": "object",
				"context": [
					"view",
					"edit"
				],
				"properties": {
					"raw": {
						"description": "Содержимое объекта как оно существует в базе данных.",
						"type": "string",
						"context": [
							"edit"
						]
					},
					"rendered": {
						"description": "HTML содержимое объекта преобразованное для показа.",
						"type": "string",
						"context": [
							"view",
							"edit"
						],
						"readonly": true
					},
					"protected": {
						"description": "Защищено ли содержимое паролем.",
						"type": "boolean",
						"context": [
							"view",
							"edit",
							"embed"
						],
						"readonly": true
					}
				}
			},
			"author": {
				"description": "ID автора объекта.",
				"type": "integer",
				"context": [
					"view",
					"edit",
					"embed"
				]
			},
			"excerpt": {
				"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
					},
					"protected": {
						"description": "Защищать ли паролем отрывок.",
						"type": "boolean",
						"context": [
							"view",
							"edit",
							"embed"
						],
						"readonly": true
					}
				}
			},
			"featured_media": {
				"description": "ID избранного медиа для объекта.",
				"type": "integer",
				"context": [
					"view",
					"edit",
					"embed"
				]
			},
			"comment_status": {
				"description": "Открыты ли комментарии для объекта.",
				"type": "string",
				"enum": [
					"open",
					"closed"
				],
				"context": [
					"view",
					"edit"
				]
			},
			"ping_status": {
				"description": "Принимает ли объект уведомления.",
				"type": "string",
				"enum": [
					"open",
					"closed"
				],
				"context": [
					"view",
					"edit"
				]
			},
			"format": {
				"description": "Формат для объекта.",
				"type": "string",
				"enum": [
					"standard",
					"aside",
					"chat",
					"gallery",
					"link",
					"image",
					"quote",
					"status",
					"video",
					"audio"
				],
				"context": [
					"view",
					"edit"
				]
			},
			"meta": {
				"description": "Мета поля.",
				"type": "object",
				"context": [
					"view",
					"edit"
				],
				"properties": []
			},
			"sticky": {
				"description": "Считать ли объект прилепленным или нет.",
				"type": "boolean",
				"context": [
					"view",
					"edit"
				]
			},
			"template": {
				"description": "Файл темы используемый для показа объекта.",
				"type": "string",
				"context": [
					"view",
					"edit"
				]
			},
			"categories": {
				"description": "Элементы назначенные объекту в таксономии category.",
				"type": "array",
				"items": {
					"type": "integer"
				},
				"context": [
					"view",
					"edit"
				]
			},
			"tags": {
				"description": "Элементы назначенные объекту в таксономии post_tag.",
				"type": "array",
				"items": {
					"type": "integer"
				},
				"context": [
					"view",
					"edit"
				]
			}
		},
		"links": [
			{
				"rel": "https://api.w.org/action-publish",
				"title": "Текущий пользователь может опубликовать эту запись.",
				"href": "http://wptest.ru/wp-json/wp/v2/posts/{id}",
				"targetSchema": {
					"type": "object",
					"properties": {
						"status": {
							"type": "string",
							"enum": [
								"publish",
								"future"
							]
						}
					}
				}
			},
			{
				"rel": "https://api.w.org/action-sticky",
				"title": "Текущий пользователь может сделать эту запись прикрепленной.",
				"href": "http://wptest.ru/wp-json/wp/v2/posts/{id}",
				"targetSchema": {
					"type": "object",
					"properties": {
						"sticky": {
							"type": "boolean"
						}
					}
				}
			},
			{
				"rel": "https://api.w.org/action-assign-author",
				"title": "Текущий пользователь может сменить автора для этой записи.",
				"href": "http://wptest.ru/wp-json/wp/v2/posts/{id}",
				"targetSchema": {
					"type": "object",
					"properties": {
						"author": {
							"type": "integer"
						}
					}
				}
			},
			{
				"rel": "https://api.w.org/action-assign-categories",
				"title": "Текущий пользователь может назначать элементы в таксономии category.",
				"href": "http://wptest.ru/wp-json/wp/v2/posts/{id}",
				"targetSchema": {
					"type": "object",
					"properties": {
						"categories": {
							"type": "array",
							"items": {
								"type": "integer"
							}
						}
					}
				}
			},
			{
				"rel": "https://api.w.org/action-create-categories",
				"title": "Текущий пользователь может создавать элементы в таксономии category.",
				"href": "http://wptest.ru/wp-json/wp/v2/posts/{id}",
				"targetSchema": {
					"type": "object",
					"properties": {
						"categories": {
							"type": "array",
							"items": {
								"type": "integer"
							}
						}
					}
				}
			},
			{
				"rel": "https://api.w.org/action-assign-tags",
				"title": "Текущий пользователь может назначать элементы в таксономии post_tag.",
				"href": "http://wptest.ru/wp-json/wp/v2/posts/{id}",
				"targetSchema": {
					"type": "object",
					"properties": {
						"tags": {
							"type": "array",
							"items": {
								"type": "integer"
							}
						}
					}
				}
			},
			{
				"rel": "https://api.w.org/action-create-tags",
				"title": "Текущий пользователь может создавать элементы в таксономии post_tag.",
				"href": "http://wptest.ru/wp-json/wp/v2/posts/{id}",
				"targetSchema": {
					"type": "object",
					"properties": {
						"tags": {
							"type": "array",
							"items": {
								"type": "integer"
							}
						}
					}
				}
			}
		]
	}
}

Список записей

За один запрос можно получить коллекцию из записей по тем или иным условиям. Алгоритм схож с работой класса WP_Query и функций на его основе.

Вид запроса

Доступ: публичный

GET /wp/v2/posts

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

context
Область, в которой выполняется запрос; определяет поля, присутствующие в ответе. Может быть view, embed, edit.
По умолчанию: view
page
Страница коллекции (пагинации).
По умолчанию: 1
per_page
Максимальное количество записей в результирующем наборе.
По умолчанию: 10 (от 1 до 100 включительно)
search
Ограничить ответ по записям строкой (поисковой фразой).
after
Ограничить ответ по записям, опубликованных после заданной даты, соответствующей ISO8601.
before
Ограничить ответ по записям, опубликованных до заданной даты, соответствующей ISO8601.
author
Указывает записи каких авторов надо вернуть.
author_exclude
Указывает записи каких авторов не надо возвращать.
exclude
Исключает из набора записи по их ID.
include
Включает в набор записи по их ID. В наборе будут присутствовать только те записи, ID которых были указаны.
offset
Смещение (отступ) набора результатов на указанное число.
По умолчанию: 1
order
Сортировка записей в выборке. Может быть asc или desc.
По умолчанию: desc
orderby
Сортировка записей в выборке по атрибутам. Может быть author, date, id, include, modified, parent, relevance, slug, title.
По умолчанию: date
slug
Ограничение выборки по указанному одному ярлыку записи или нескольким.
status
Ограничение выборки по одному статусу или нескольким.
По умолчанию: publish
categories
Ограничение выборки по указанной категории (рубрике) или рубрикам.
categories_exclude:
Исключает из выборки записи, принадлежащие указанной категории (рубрике) или рубрикам.
tags
Ограничение выборки по указанной метке (тегу) или меткам.
tags_exclude:
Исключает из выборки записи, принадлежащие указанной метке (тегу) или меткам.
sticky
Выборка будет состоять только из "липких" записей.

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

Ссылки рабочие, можно открыть в браузере и посмотреть результат.

1) Запрос на получение массива всех записей:

https://demo.wp-api.org/wp-json/wp/v2/posts/

Вернется массив объектов, где каждый объект записи схож с тем, что описан в пункте "Получить запись":

[
	{
	... данные записи <id> ...
	},
	{
	... данные записи <id> ...
	},
	{
	... данные записи <id> ...
	}
]

2) Вернет записи, у которых автор с ID=1

https://demo.wp-api.org/wp-json/wp/v2/posts/?author=1

3) Вернет записи, у которых автор с ID=1 и которые принадлежат рубрике с ID=11

https://demo.wp-api.org/wp-json/wp/v2/posts/?author=1&categories=11

Создание записи

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

Вид запроса

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

POST /wp/v2/posts

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

date(строка)
Дата публикации записи в часовом поясе сайта.
date_gmt(строка/datetime)
Дата публикации записи, как GMT.
slug(строка)
Алфавитно-цифровой идентификатор записи, уникальный для его типа. Ещё называют ярлыком.
status(строка)
Статус записи. Может быть publish, future, draft, pending, private.
password(строка)
Пароль для защиты доступа к контенту и цитате (отрывку).
title(объект)
Заголовок записи.
content(объект)
Контент записи.
author(число)
Идентификатор (ID) автора записи.
excerpt(объект)
Цитата (отрывок) записи.
featured_media(число)
Идентификатор (ID) миниатюры (изображения) записи.
comment_status(строка)
Можно ли оставлять комментарии к записи или нет. Может быть open или closed.
ping_status(строка)
Статус пингов/трэкбэков, может быть open или closed.
format(строка)
Статус записи. Может быть: standard, aside, chat, gallery, link, image, quote, status, video, audio.
meta(массив)
Значения метаполей. Массив объектов.
sticky(логический)
Является ли запись липкой или нет.
template(строка)
Файл темы, который используется для отображения записи.
categories(массив)
Массив с ID рубрик (категорий), к которым принадлежит запись.
tags(массив)
Массив с ID меток (тегов), к которым принадлежит запись.

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

POST http://example.com/wp-json/wp/v2/posts/?title=Заголовок&slug=my-post&status=publish

wp/v2/posts/{id}

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

$ curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/posts/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"
                },
                "date": {
                    "required": false,
                    "description": "Дата публикации объекта, по временной зоне сайта.",
                    "type": "string"
                },
                "date_gmt": {
                    "required": false,
                    "description": "Время публикации объекта, по GMT.",
                    "type": "string"
                },
                "slug": {
                    "required": false,
                    "description": "Буквенно-цифровой идентификатор для объекта уникальный для его типа.",
                    "type": "string"
                },
                "status": {
                    "required": false,
                    "enum": [
                        "publish",
                        "future",
                        "draft",
                        "pending",
                        "private"
                    ],
                    "description": "Именованный статус для объекта.",
                    "type": "string"
                },
                "password": {
                    "required": false,
                    "description": "Пароль для защиты содержания и отрывка.",
                    "type": "string"
                },
                "title": {
                    "required": false,
                    "description": "Название для объекта.",
                    "type": "object"
                },
                "content": {
                    "required": false,
                    "description": "Содержимое объекта.",
                    "type": "object"
                },
                "author": {
                    "required": false,
                    "description": "ID автора объекта.",
                    "type": "integer"
                },
                "excerpt": {
                    "required": false,
                    "description": "Отрывок объекта.",
                    "type": "object"
                },
                "featured_media": {
                    "required": false,
                    "description": "ID избранного медиа для объекта.",
                    "type": "integer"
                },
                "comment_status": {
                    "required": false,
                    "enum": [
                        "open",
                        "closed"
                    ],
                    "description": "Открыты ли комментарии для объекта.",
                    "type": "string"
                },
                "ping_status": {
                    "required": false,
                    "enum": [
                        "open",
                        "closed"
                    ],
                    "description": "Принимает ли объект уведомления.",
                    "type": "string"
                },
                "format": {
                    "required": false,
                    "enum": [
                        "standard",
                        "aside",
                        "chat",
                        "gallery",
                        "link",
                        "image",
                        "quote",
                        "status",
                        "video",
                        "audio"
                    ],
                    "description": "Формат для объекта.",
                    "type": "string"
                },
                "meta": {
                    "required": false,
                    "description": "Мета поля.",
                    "type": "object"
                },
                "sticky": {
                    "required": false,
                    "description": "Считать ли объект прилепленным или нет.",
                    "type": "boolean"
                },
                "template": {
                    "required": false,
                    "description": "Файл темы используемый для показа объекта.",
                    "type": "string"
                },
                "categories": {
                    "required": false,
                    "description": "Элементы назначенные объекту в таксономии category.",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "tags": {
                    "required": false,
                    "description": "Элементы назначенные объекту в таксономии post_tag.",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        {
            "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": "post",
        "type": "object",
        "properties": {
            "date": {
                "description": "Дата публикации объекта, по временной зоне сайта.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "date_gmt": {
                "description": "Время публикации объекта, по GMT.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "guid": {
                "description": "Глобальный уникальный идентификатор для объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "readonly": true,
                "properties": {
                    "raw": {
                        "description": "GUID для объекта, как он существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ],
                        "readonly": true
                    },
                    "rendered": {
                        "description": "GUID для объекта, преобразованный для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit"
                        ],
                        "readonly": true
                    }
                }
            },
            "id": {
                "description": "Уникальный идентификатор для объекта.",
                "type": "integer",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ],
                "readonly": true
            },
            "link": {
                "description": "URL объекта.",
                "type": "string",
                "format": "uri",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ],
                "readonly": true
            },
            "modified": {
                "description": "Дата последнего изменения объекта, по временной зоне сайта.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit"
                ],
                "readonly": true
            },
            "modified_gmt": {
                "description": "Дата последнего изменения объекта, в GMT.",
                "type": "string",
                "format": "date-time",
                "context": [
                    "view",
                    "edit"
                ],
                "readonly": true
            },
            "slug": {
                "description": "Буквенно-цифровой идентификатор для объекта уникальный для его типа.",
                "type": "string",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "status": {
                "description": "Именованный статус для объекта.",
                "type": "string",
                "enum": [
                    "publish",
                    "future",
                    "draft",
                    "pending",
                    "private"
                ],
                "context": [
                    "view",
                    "edit"
                ]
            },
            "type": {
                "description": "Тип записи для объекта.",
                "type": "string",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ],
                "readonly": true
            },
            "password": {
                "description": "Пароль для защиты содержания и отрывка.",
                "type": "string",
                "context": [
                    "edit"
                ]
            },
            "title": {
                "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
                    }
                }
            },
            "content": {
                "description": "Содержимое объекта.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "properties": {
                    "raw": {
                        "description": "Содержимое объекта как оно существует в базе данных.",
                        "type": "string",
                        "context": [
                            "edit"
                        ]
                    },
                    "rendered": {
                        "description": "HTML содержимое объекта преобразованное для показа.",
                        "type": "string",
                        "context": [
                            "view",
                            "edit"
                        ],
                        "readonly": true
                    },
                    "protected": {
                        "description": "Защищено ли содержимое паролем.",
                        "type": "boolean",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    }
                }
            },
            "author": {
                "description": "ID автора объекта.",
                "type": "integer",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "excerpt": {
                "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
                    },
                    "protected": {
                        "description": "Защищать ли паролем отрывок.",
                        "type": "boolean",
                        "context": [
                            "view",
                            "edit",
                            "embed"
                        ],
                        "readonly": true
                    }
                }
            },
            "featured_media": {
                "description": "ID избранного медиа для объекта.",
                "type": "integer",
                "context": [
                    "view",
                    "edit",
                    "embed"
                ]
            },
            "comment_status": {
                "description": "Открыты ли комментарии для объекта.",
                "type": "string",
                "enum": [
                    "open",
                    "closed"
                ],
                "context": [
                    "view",
                    "edit"
                ]
            },
            "ping_status": {
                "description": "Принимает ли объект уведомления.",
                "type": "string",
                "enum": [
                    "open",
                    "closed"
                ],
                "context": [
                    "view",
                    "edit"
                ]
            },
            "format": {
                "description": "Формат для объекта.",
                "type": "string",
                "enum": [
                    "standard",
                    "aside",
                    "chat",
                    "gallery",
                    "link",
                    "image",
                    "quote",
                    "status",
                    "video",
                    "audio"
                ],
                "context": [
                    "view",
                    "edit"
                ]
            },
            "meta": {
                "description": "Мета поля.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "properties": []
            },
            "sticky": {
                "description": "Считать ли объект прилепленным или нет.",
                "type": "boolean",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "template": {
                "description": "Файл темы используемый для показа объекта.",
                "type": "string",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "categories": {
                "description": "Элементы назначенные объекту в таксономии category.",
                "type": "array",
                "items": {
                    "type": "integer"
                },
                "context": [
                    "view",
                    "edit"
                ]
            },
            "tags": {
                "description": "Элементы назначенные объекту в таксономии post_tag.",
                "type": "array",
                "items": {
                    "type": "integer"
                },
                "context": [
                    "view",
                    "edit"
                ]
            }
        },
        "links": [
            {
                "rel": "https://api.w.org/action-publish",
                "title": "Текущий пользователь может опубликовать эту запись.",
                "href": "http://wptest.ru/wp-json/wp/v2/posts/{id}",
                "targetSchema": {
                    "type": "object",
                    "properties": {
                        "status": {
                            "type": "string",
                            "enum": [
                                "publish",
                                "future"
                            ]
                        }
                    }
                }
            },
            {
                "rel": "https://api.w.org/action-sticky",
                "title": "Текущий пользователь может сделать эту запись прикрепленной.",
                "href": "http://wptest.ru/wp-json/wp/v2/posts/{id}",
                "targetSchema": {
                    "type": "object",
                    "properties": {
                        "sticky": {
                            "type": "boolean"
                        }
                    }
                }
            },
            {
                "rel": "https://api.w.org/action-assign-author",
                "title": "Текущий пользователь может сменить автора для этой записи.",
                "href": "http://wptest.ru/wp-json/wp/v2/posts/{id}",
                "targetSchema": {
                    "type": "object",
                    "properties": {
                        "author": {
                            "type": "integer"
                        }
                    }
                }
            },
            {
                "rel": "https://api.w.org/action-assign-categories",
                "title": "Текущий пользователь может назначать элементы в таксономии category.",
                "href": "http://wptest.ru/wp-json/wp/v2/posts/{id}",
                "targetSchema": {
                    "type": "object",
                    "properties": {
                        "categories": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    }
                }
            },
            {
                "rel": "https://api.w.org/action-create-categories",
                "title": "Текущий пользователь может создавать элементы в таксономии category.",
                "href": "http://wptest.ru/wp-json/wp/v2/posts/{id}",
                "targetSchema": {
                    "type": "object",
                    "properties": {
                        "categories": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    }
                }
            },
            {
                "rel": "https://api.w.org/action-assign-tags",
                "title": "Текущий пользователь может назначать элементы в таксономии post_tag.",
                "href": "http://wptest.ru/wp-json/wp/v2/posts/{id}",
                "targetSchema": {
                    "type": "object",
                    "properties": {
                        "tags": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    }
                }
            },
            {
                "rel": "https://api.w.org/action-create-tags",
                "title": "Текущий пользователь может создавать элементы в таксономии post_tag.",
                "href": "http://wptest.ru/wp-json/wp/v2/posts/{id}",
                "targetSchema": {
                    "type": "object",
                    "properties": {
                        "tags": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    }
                }
            }
        ]
    }
}

Получение записи

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

Вид запроса

Доступ: публичный

GET /wp/v2/posts/{id}

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

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

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

$ curl http://demo.wp-api.org/wp-json/wp/v2/posts/{id}

Пример запроса объект записи с ID=1:

https://demo.wp-api.org/wp-json/wp/v2/posts/1

Ответ:

{
   "id":1,
   "date":"2017-05-23T06:25:50",
   "date_gmt":"2017-05-23T06:25:50",
   "guid":{
	  "rendered":"http://demo.wp-api.org/?p=1"
   },
   "modified":"2017-05-23T06:25:50",
   "modified_gmt":"2017-05-23T06:25:50",
   "slug":"hello-world",
   "status":"publish",
   "type":"post",
   "link":"https://demo.wp-api.org/2017/05/23/hello-world/",
   "title":{
	  "rendered":"Hello world!"
   },
   "content":{
	  "rendered":"<p>Welcome to <a href=\"http://wp-api.org/\">WP API Demo Sites</a>. This is your first post. Edit or delete it, then start blogging!</p>\n",
	  "protected":false
   },
   "excerpt":{
	  "rendered":"<p>Welcome to WP API Demo Sites. This is your first post. Edit or delete it, then start blogging!</p>\n",
	  "protected":false
   },
   "author":1,
   "featured_media":0,
   "comment_status":"open",
   "ping_status":"open",
   "sticky":false,
   "template":"",
   "format":"standard",
   "meta":[

   ],
   "categories":[
	  1
   ],
   "tags":[

   ],
   "_links":{
	  "self":[
		 {
			"href":"https://demo.wp-api.org/wp-json/wp/v2/posts/1"
		 }
	  ],
	  "collection":[
		 {
			"href":"https://demo.wp-api.org/wp-json/wp/v2/posts"
		 }
	  ],
	  "about":[
		 {
			"href":"https://demo.wp-api.org/wp-json/wp/v2/types/post"
		 }
	  ],
	  "author":[
		 {
			"embeddable":true,
			"href":"https://demo.wp-api.org/wp-json/wp/v2/users/1"
		 }
	  ],
	  "replies":[
		 {
			"embeddable":true,
			"href":"https://demo.wp-api.org/wp-json/wp/v2/comments?post=1"
		 }
	  ],
	  "version-history":[
		 {
			"href":"https://demo.wp-api.org/wp-json/wp/v2/posts/1/revisions"
		 }
	  ],
	  "wp:attachment":[
		 {
			"href":"https://demo.wp-api.org/wp-json/wp/v2/media?parent=1"
		 }
	  ],
	  "wp:term":[
		 {
			"taxonomy":"category",
			"embeddable":true,
			"href":"https://demo.wp-api.org/wp-json/wp/v2/categories?post=1"
		 },
		 {
			"taxonomy":"post_tag",
			"embeddable":true,
			"href":"https://demo.wp-api.org/wp-json/wp/v2/tags?post=1"
		 }
	  ],
	  "curies":[
		 {
			"name":"wp",
			"href":"https://api.w.org/{rel}",
			"templated":true
		 }
	  ]
   }
}

Обновление записи

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

Вид запроса

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

POST|PUT|PATCH /wp/v2/posts/{id}

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

id(обязательный)
Уникальный идентификатор записи, которую надо обновить.
Остальные параметры
Полностью совпадают с параметрами пункта "Создание записи".

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

$ curl -X POST http://demo.wp-api.org/wp-json/wp/v2/posts/123 -d '{"title":"My New Title"}'

Удаление записи

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

Вид запроса

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

DELETE /wp/v2/posts/{id}

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

id(обязательный)
Уникальный идентификатор записи, которую надо удалить.
force(логический)
Удалять мимо корзины, если она включена. true - принудительное удаление навсегда.
По умолчанию: false

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

Удалим пост 25:

$ curl -X DELETE http://demo.wp-api.org/wp-json/wp/v2/posts/25

Удалим мектаполе поста 25:
Для этого в значении метаполя нужно поставить пустую строку и сделать пост запрос:

$ curl -X POST http://demo.wp-api.org/wp-json/wp/v2/posts/25 -d '{"my_metakey":""}'
campusboy 4736youtube.com/c/wpplus
Создатель YouTube канала wp-plus, на котором делюсь своим опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Редакторы: Kama 9600
9 комментариев
    Войти