Wp json: WordPress: отключаем REST API (wp-json)

Wp json: WordPress: отключаем REST API (wp-json)

Маршруты WP из коробки — REST API

В этом разделе находится справочник по REST API в WordPress — это базовые маршруты, который WordPress поддерживает из коробки. Здесь содержатся сведения о конечных точках, доступных через API, их параметрах, формате ответа и т.д.

Список базовых маршрутов WP

РесурсМаршрут (URL)
Записи (posts)/wp-json/wp/v2/posts
Ревизии (post Revisions)/wp-json/wp/v2/revisions
Категории (categories)/wp-json/wp/v2/categories
Теги (tags)/wp-json/wp/v2/tags
Страницы (pages)/wp-json/wp/v2/pages
Комментарии (comments)/wp-json/wp/v2/comments
Таксономии (taxonomies)/wp-json/wp/v2/taxonomies
Медиа (media)/wp-json/wp/v2/media
Пользователи (users)/wp-json/wp/v2/users
Типы записей (post Types)/wp-json/wp/v2/types
Статусы записей (post Statuses)/wp-json/wp/v2/statuses
Настройки (settings)/wp-json/wp/v2/settings
Все маршруты WP 5.
9
/
/batch/v1
/oembed/1.0
/oembed/1.0/embed
/oembed/1.0/proxy
/wp/v2
/wp/v2/posts
/wp/v2/posts/(?P<id>[\\d]+)
/wp/v2/posts/(?P<parent>[\\d]+)/revisions
/wp/v2/posts/(?P<parent>[\\d]+)/revisions/(?P<id>[\\d]+)
/wp/v2/posts/(?P<id>[\\d]+)/autosaves
/wp/v2/posts/(?P<parent>[\\d]+)/autosaves/(?P<id>[\\d]+)
/wp/v2/pages
/wp/v2/pages/(?P<id>[\\d]+)
/wp/v2/pages/(?P<parent>[\\d]+)/revisions
/wp/v2/pages/(?P<parent>[\\d]+)/revisions/(?P<id>[\\d]+)
/wp/v2/pages/(?P<id>[\\d]+)/autosaves
/wp/v2/pages/(?P<parent>[\\d]+)/autosaves/(?P<id>[\\d]+)
/wp/v2/media
/wp/v2/media/(?P<id>[\\d]+)
/wp/v2/media/(?P<id>[\\d]+)/post-process
/wp/v2/media/(?P<id>[\\d]+)/edit
/wp/v2/menu-items
/wp/v2/menu-items/(?P<id>[\\d]+)
/wp/v2/menu-items/(?P<id>[\\d]+)/autosaves
/wp/v2/menu-items/(?P<parent>[\\d]+)/autosaves/(?P<id>[\\d]+)
/wp/v2/blocks
/wp/v2/blocks/(?P<id>[\\d]+)
/wp/v2/blocks/(?P<parent>[\\d]+)/revisions
/wp/v2/blocks/(?P<parent>[\\d]+)/revisions/(?P<id>[\\d]+)
/wp/v2/blocks/(?P<id>[\\d]+)/autosaves
/wp/v2/blocks/(?P<parent>[\\d]+)/autosaves/(?P<id>[\\d]+)
/wp/v2/templates
/wp/v2/templates/(?P<id>([^\\/:<>\\*\\?\"\\|]+(?:\\/[^\\/:<>\\*\\?\"\\|]+)?)[\\/\\w-]+)
/wp/v2/templates/(?P<parent>[\\d]+)/revisions
/wp/v2/templates/(?P<parent>[\\d]+)/revisions/(?P<id>[\\d]+)
/wp/v2/templates/(?P<id>[\\d]+)/autosaves
/wp/v2/templates/(?P<parent>[\\d]+)/autosaves/(?P<id>[\\d]+)
/wp/v2/template-parts
/wp/v2/template-parts/(?P<id>([^\\/:<>\\*\\?\"\\|]+(?:\\/[^\\/:<>\\*\\?\"\\|]+)?)[\\/\\w-]+)
/wp/v2/template-parts/(?P<parent>[\\d]+)/revisions
/wp/v2/template-parts/(?P<parent>[\\d]+)/revisions/(?P<id>[\\d]+)
/wp/v2/template-parts/(?P<id>[\\d]+)/autosaves
/wp/v2/template-parts/(?P<parent>[\\d]+)/autosaves/(?P<id>[\\d]+)
/wp/v2/navigation
/wp/v2/navigation/(?P<id>[\\d]+)
/wp/v2/navigation/(?P<parent>[\\d]+)/revisions
/wp/v2/navigation/(?P<parent>[\\d]+)/revisions/(?P<id>[\\d]+)
/wp/v2/navigation/(?P<id>[\\d]+)/autosaves
/wp/v2/navigation/(?P<parent>[\\d]+)/autosaves/(?P<id>[\\d]+)
/wp/v2/types
/wp/v2/types/(?P<type>[\\w-]+)
/wp/v2/statuses
/wp/v2/statuses/(?P<status>[\\w-]+)
/wp/v2/taxonomies
/wp/v2/taxonomies/(?P<taxonomy>[\\w-]+)
/wp/v2/categories
/wp/v2/categories/(?P<id>[\\d]+)
/wp/v2/tags
/wp/v2/tags/(?P<id>[\\d]+)
/wp/v2/menus
/wp/v2/menus/(?P<id>[\\d]+)
/wp/v2/users
/wp/v2/users/(?P<id>[\\d]+)
/wp/v2/users/me
/wp/v2/users/(?P<user_id>(?:[\\d]+|me))/application-passwords
/wp/v2/users/(?P<user_id>(?:[\\d]+|me))/application-passwords/introspect
/wp/v2/users/(?P<user_id>(?:[\\d]+|me))/application-passwords/(?P<uuid>[\\w\\-]+)
/wp/v2/comments
/wp/v2/comments/(?P<id>[\\d]+)
/wp/v2/search
/wp/v2/block-renderer/(?P<name>[a-z0-9-]+/[a-z0-9-]+)
/wp/v2/block-types
/wp/v2/block-types/(?P<namespace>[a-zA-Z0-9_-]+)
/wp/v2/block-types/(?P<namespace>[a-zA-Z0-9_-]+)/(?P<name>[a-zA-Z0-9_-]+)
/wp/v2/global-styles/themes/(?P<stylesheet>[^\\/:<>\\*\\?\"\\|]+(?:\\/[^\\/:<>\\*\\?\"\\|]+)?)
/wp/v2/global-styles/(?P<id>[\\/\\w-]+)
/wp/v2/settings
/wp/v2/themes
/wp/v2/themes/(?P<stylesheet>[^\\/:<>\\*\\?\"\\|]+(?:\\/[^\\/:<>\\*\\?\"\\|]+)?)
/wp/v2/plugins
/wp/v2/plugins/(?P<plugin>[^. .\\/]+)?)
/wp/v2/sidebars
/wp/v2/sidebars/(?P<id>[\\w-]+)
/wp/v2/widget-types
/wp/v2/widget-types/(?P<id>[a-zA-Z0-9_-]+)
/wp/v2/widget-types/(?P<id>[a-zA-Z0-9_-]+)/encode
/wp/v2/widget-types/(?P<id>[a-zA-Z0-9_-]+)/render
/wp/v2/widgets
/wp/v2/widgets/(?P<id>[\\w\\-]+)
/wp/v2/block-directory/search
/wp/v2/pattern-directory/patterns
/wp-site-health/v1
/wp-site-health/v1/tests/background-updates
/wp-site-health/v1/tests/loopback-requests
/wp-site-health/v1/tests/https-status
/wp-site-health/v1/tests/dotorg-communication
/wp-site-health/v1/tests/authorization-header
/wp-site-health/v1/directory-sizes
/wp-block-editor/v1
/wp-block-editor/v1/url-details
/wp/v2/menu-locations
/wp/v2/menu-locations/(?P<location>[\\w-]+)
/wp-block-editor/v1/export

Документация по REST API

REST API WordPress предоставляет документацию по самому себе. Она позволят увидеть возможности маршрута: схему маршрута, какие в нем есть эндпоинты, какие параметры может принимать каждый эндпоинт.

Общую доку по всему REST API можно получить GET запросом по основному (корневому) маршруту /wp-json/. Доку по отдельному маршруту можно получить отправив на него OPTIONS запрос.

Информация о REST по главному маршруту /wp-json/Информация о REST по отдельному маршруту /wp-json/wp/v2/categories/
Пример

Например, зайдем на сайт apirequest.io и отправим OPTIONS запрос на маршрут (URL) 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": [ "category", "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": [] } } } }

API WordPress JSON REST — CoderLessons.com

WordPress имеет большую долю рынка в Интернете. REST API – это растущая техника и большие возможности для разработчиков. Знание того, как создавать API и как их использовать, дает вам большое преимущество. REST API можно использовать везде. В мобильных приложениях, во внешнем интерфейсе (веб-приложения) или любых других устройствах, имеющих доступ в сеть.

Возможно, у вашего клиента уже есть сайт, который работает на WordPress, а также хочет мобильное приложение. Вы можете создать API, используя собственный код и опираясь на базу данных, но это может вызвать много разочарований. Может быть, они спешат и хотят API как можно скорее. В WordPress это так же просто, как установить плагин.

В этой статье мы дадим общий обзор плагина JSON REST API . Мы рассмотрим, как работает этот плагин, и основные принципы архитектуры REST.

подготовка

Загрузите последнюю версию JSON REST API в каталог плагинов WordPress. Установите и активируйте его. Теперь у вас есть готовый API REST. Вам нужен клиент REST для тестирования и изучения. Есть много инструментов для этой работы. Не ограничивайте себя только этими четырьмя инструментами. Есть много других клиентов REST.

Первый – это CURL . Это инструмент командной строки, который может отправлять различные запросы к данной конечной точке. Он не только связан с REST API, но и является общим инструментом HTTP-запросов . Многие тестовые примеры на других статьях сделаны с использованием этого инструмента. Это универсальный инструмент HTTP, который можно перевести на любой язык программирования.

Одним из инструментов, которые я обычно использую, является клиент PHPStorm REST. Поскольку я в основном работаю с этой IDE при разработке, мне легче использовать инструмент, к которому я могу получить доступ быстрее. Многие другие IDE поставляются с интегрированным REST-клиентом, чтобы сделать разработку REST API проще и быстрее.

Третий и тот, который я настоятельно рекомендую, – почтальон . Это самый простой и интуитивно понятный клиент REST, с которым я когда-либо работал. К сожалению, доступно только как расширение Chrome. Если вы используете Firefox, есть хорошее расширение RESTClient .

Изучение архитектуры REST

Первое, что вам нужно сделать, это проверить, работает ли этот плагин, где находится его конечная точка, базовый URL, который содержит всю информацию о схеме, всех ресурсах (коллекциях) и маршрутах. Плагин добавляет новое поле под названием «Link» в заголовке, поэтому проверьте это в заголовке ответа. Если вы используете Postman или любой другой клиент GUI, просто проверьте заголовок. Если вы используете cURL, выполните эту команду на своей домашней странице:

curl -I http://yoursite.com/ 

Параметр заголовка захватывает только заголовок. В моем случае конечной точкой является local.wordpress.dev/wp-json . Если вы оставили постоянную ссылку на ее значение по умолчанию в настройках, тогда у вас может быть значение ссылки примерно так: http://local.wordpress.dev/?json_route=/ .

Это изменяет только правила перезаписи, но не любые другие существенные изменения. Все одинаково в двух случаях.

index endpoint (или конечная точка API) является начальной точкой. Вы можете изучить весь API оттуда. Он дает вам всю информацию об API. Он дает информацию о коллекциях, объектах и ​​о том, как они отображаются на маршрутах. Сделайте запрос GET к вашей конечной точке и посмотрите, что он возвращает. На клиентах REST это легко, потому что вы имеете дело с интерфейсом GUI. Посмотрим, как это делается с помощью cURL.

curl http://local.wordpress.dev/wp-json/ 

В моем случае он возвращает большой файл JSON, который выглядит следующим образом.

{ "name": "Local WordPress Dev", "description": "Just another WordPress site", "URL": "http://local.wordpress.dev", "routes": { "/": { "supports": [ "HEAD", "GET" ], "meta": { "self": "http://local.wordpress.dev/wp-json/" } }, "/posts": { "supports": [ "HEAD", "GET", "POST" ], "meta": { "self": "http://local.wordpress.dev/wp-json/posts" }, "accepts_json": true }, "/posts/<id>": { "supports": [ "HEAD", "GET", "POST", "PUT", "PATCH", "DELETE" ], "accepts_json": true }, "/posts/<id>/revisions": { "supports": [ "HEAD", "GET" ] } }, "authentication": [], "meta": { "links": { "help": "https://github.com/WP-API/WP-API", "profile": "https://raw.github.com/WP-API/WP-API/master/docs/schema.json" } } } 

На самом деле ответ слишком длинный, поэтому я удалил большую его часть. Индексный маршрут (конечная точка) дает информацию о названии сайта, описании и его URL. Все маршруты, которые вы можете найти в API, также отображаются в поле «маршруты». посты , пользователи , медиа , страницы являются коллекциями. Коллекции – это группа сущностей. Сущность – это одно сообщение или одна страница со своим идентификатором.

Допустим, мы хотим видеть последние сообщения. api_endpoint/posts точкой для Коллекции является api_endpoint/posts . Это возвращает последние сообщения. Entity – api_endpoint/posts/ID с указанным идентификатором в качестве аргумента. Используя cURL, команда будет:

curl http://local.wordpress.dev/wp-json/posts 

И:

curl http://local.wordpress.dev/wp-json/1 

Получение данных – это хорошо, но бывают случаи, когда мы хотим опубликовать данные.

ПОСТ, ОБНОВЛЕНИЕ, УДАЛЕНИЕ

Я хочу поделиться некоторыми проблемами, которые я получил, когда пытался опубликовать или удалить данные. Во-первых, вам нужно аутентифицировать себя. Есть три способа аутентификации.

Первый использует куки. Это один из методов, который широко не используется при работе с API. Когда пользователь перемещается по сети, страницы, как правило, хранят данные на стороне пользователя. Метод cookie здесь немного отличается при использовании метода nonces .

Второй метод OAuth. Этот плагин реализует версию 1.0a OAuth. Этот метод широко используется. Google, Facebook, Twitter и Flickr используют OAuth для сторонней аутентификации. OAuth находится во второй версии, но они решили использовать версию 1.0a. Существует большая дискуссия по второй версии. Некоторые крупные компании не перешли на второй вариант по разным причинам, но в основном заботятся о безопасности.

Третий – базовая аутентификация. Используя этот метод, вы должны отправлять свое имя пользователя и пароль каждый раз, когда вы делаете запрос. Клиентские инструменты для тестирования REST обычно реализуют этот метод самостоятельно. Этот метод в основном используется при разработке. Редко используется на производстве. На производстве рассмотрите использование OAuth.

К сожалению, плагин Basic Authentication обновляется не часто. Они сосредоточили все свои усилия на плагине OAuth. Этот плагин не может быть найден на wordpress.org, но только в его репозитории GitHub. Вы должны вручную установить его. В каталоге плагинов выполните эту команду:

git clone https://github.com/WP-API/Basic-Auth basicAuth 

Или посетите страницу GitHub, загрузите плагин и установите его вручную через FTP.

Затем перейдите на панель инструментов и активируйте ее. Этот плагин имеет некоторые проблемы с серверами не Apache. Поскольку я в основном использую WordPress VVV, который является установкой Vagrant, у него есть проблемы, потому что VVV поставляется с nginx. Измените конфигурацию постоянной ссылки, если у вас по умолчанию. Это сработало для меня.

Теперь, когда у нас настроена аутентификация, пришло время создать несколько постов. Почтальон имеет базовую аутентификацию. Введите имя пользователя и пароль, если вы используете Postman, и он будет помнить кодировку base 64 при каждом запросе. Чтобы увидеть, работает ли он, сделайте запрос в «index_endpoint / users / me». Он возвращает информацию о вас.

Если вы попытаетесь получить доступ к этому URL-адресу без использования базовой аутентификации или других методов аутентификации, API вернет:

[ { "code": "json_not_logged_in", "message": "You are not currently logged in." } ] 

Давайте попробуем сделать запрос через cURL, а также включить метод Basic Auth:

curl --user admin:password http://local.wordpress.dev/wp-json/users/me 

Опция --user создает аргумент admin:password который представляет собой всего лишь 64 кодировку этого простого текста. cURL создает заголовки запроса для базовой аутентификации, добавляя дополнительное поле. Вот что он добавляет в моем случае:

Authorization: Basic YWRtaW46cGFzc3dvcmQ= 

Это то, что возвращается, когда я пытаюсь получить доступ к своему профилю с использованием указанных учетных данных.

{ "ID": 1, "username": "admin", "name": "admin", "first_name": "", "last_name": "", "nickname": "admin", "slug": "admin", "URL": "", "avatar": "http://0.gravatar.com/avatar/06e92fdf4a9a63441dff65945114b47f?s=96", "description": "", "registered": "2014-07-17T22:59:59+00:00", "roles": [ "administrator" ], "capabilities": { "switch_themes": true, "edit_themes": true, "activate_plugins": true, "edit_plugins": true, "edit_users": true, "edit_files": true, "manage_options": true, "moderate_comments": true, "manage_categories": true, "manage_links": true, "upload_files": true, "import": true, "administrator": true }, "email": false, "meta": { "links": { "self": "http://local.wordpress.dev/wp-json/users/1", "archives": "http://local.wordpress.dev/wp-json/users/1/posts" } } } 

Попробуем удалить один пост. Чтобы удалить один пост, мы должны знать его URL. Это URL-адрес api_endpoint/posts/ID . Замените идентификатор на 1 или любой другой идентификатор сообщения, который вы хотите. Не забывайте, что вы должны использовать аутентификацию для удаления чего-либо.

curl --user admin:password -X DELETE http://local.wordpress.dev/wp-json/posts/4 

Если вы используете Postman или аналогичный, отправьте указанный выше URL (http://local.wordpress.dev/wp-json/posts/4) и выберите метод запроса «Удалить» в раскрывающемся списке рядом с полем URL.

И вот что я получаю обратно:

{ "message":"Deleted post" } 

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

{ "title": "This is a post", "content_raw": "This is some content" } 

Отправьте эти новые данные в Коллекцию той сущности, которую мы хотим создать. Помните, что при публикации новой сущности вы должны опубликовать ее в конечной точке коллекции. Здесь мы снова использовали Basic Auth. -X POST делает этот запрос POST-запросом. --data захватывает файл, который находится в этой папке, и отправляет его в виде необработанных данных.

curl --user admin:password -X POST http://local.wordpress.dev/wp-json/posts --data @data.json 

Дальнейшее изучение

Не ограничивайте себя. У команды WordPress REST API есть и другие инструменты, которые тесно интегрированы с этим плагином. У них есть Client Cli , Client JS и Client PHP для работы с вашим API прямо из коробки. Также изучите их документацию для получения более подробной технической информации.

Знать, как использовать этот плагин, это одно, но лучший совет, который я могу дать в этом случае: «Не ограничивайте себя». Существует так много информации о REST. Здесь, на SitePoint, у нас есть замечательная серия о создании REST API с нуля от Vito Tardia .

Вывод

Создать REST API на WordPress легко. Вам не нужно создавать его с нуля, если вы используете WordPress. Фактически, конечная точка индекса расскажет вам все об этом плагине и о том, как его использовать. Мы рассказали о коллекциях, сущностях и о том, как манипулировать некоторыми данными, используя разные глаголы (GET, POST, PUT, DELETE).

Важным аспектом при разработке также является аутентификация, поэтому мы также рассмотрели это. Учитывайте OAuth 1.0a при разработке для производства. Вы также можете использовать Basic Auth, но OAuth уже протестирован и поддерживается рядом крупных компаний.

Что вы думаете о REST API на WordPress? Это конкурирует с API, созданными вручную? Знаете ли вы какие-либо другие плагины WordPress о REST? Пожалуйста, дайте нам знать в комментариях ниже.

Справочник по REST API

| Ресурсы для разработчиков WordPress

  • Что такое REST API?
  • Использование REST API WordPress
  • Следующие шаги

WordPress REST API предоставляет интерфейс для взаимодействия приложений с вашим сайтом WordPress путем отправки и получения данных в виде объектов JSON (JavaScript Object Notation). Это основа редактора блоков WordPress, и он также может позволить вашей теме, плагину или пользовательскому приложению представить новые, мощные интерфейсы для управления и публикации содержимого вашего сайта.

Используя WordPress REST API, вы можете создать плагин, чтобы предоставить совершенно новый опыт администрирования для WordPress, создать совершенно новый интерактивный внешний интерфейс или перенести свой контент WordPress в совершенно отдельные приложения.

REST API — это функция WordPress, ориентированная на разработчиков. Он обеспечивает доступ данных к содержимому вашего сайта и реализует те же ограничения аутентификации — общедоступный контент на вашем сайте, как правило, общедоступен через REST API, в то время как частный контент, контент, защищенный паролем, внутренние пользователи, настраиваемые типы сообщений, и метаданные доступны только при аутентификации или если вы специально настроили это так. Если вы не разработчик, самое важное, что нужно знать об API, это то, что он позволяет использовать редактор блоков и современные интерфейсы плагинов без ущерба для безопасности или конфиденциальности вашего сайта.

API — это интерфейс прикладного программирования.

REST, сокращение от REpresentational State Transfer, представляет собой набор концепций для моделирования и доступа к данным вашего приложения в виде взаимосвязанных объектов и коллекций. WordPress REST API предоставляет конечные точки REST (URL), представляющие сообщения, страницы, таксономии и другие встроенные типы данных WordPress. Ваше приложение может отправлять и получать данные JSON на эти конечные точки для запроса, изменения и создания контента на вашем сайте. JSON — это открытый стандартный формат данных, легкий и удобочитаемый, он выглядит так же, как объекты в JavaScript. Когда вы запрашиваете содержимое или отправляете содержимое в API, ответ также будет возвращен в формате JSON. Поскольку JSON широко поддерживается многими языками программирования, разработчики могут создавать приложения WordPress на клиентском JavaScript (например, в редакторе блоков), в виде мобильных приложений, настольных компьютеров или инструментов командной строки.

WordPress уже предоставляет богатый набор инструментов и интерфейсов для создания сайтов, и вы не должны чувствовать необходимость использовать REST API, если ваш сайт уже работает так, как вы ожидаете. Вам не нужно использовать REST API для создания темы или плагина WordPress.

Однако, если вы хотите написать свою тему, плагин или внешнее приложение как приложение JavaScript на стороне клиента или отдельную программу на языке, отличном от PHP, тогда вашему приложению потребуется структурированный способ доступа к контенту в вашем WordPress. сайт. Любой язык программирования, который может выполнять HTTP-запросы и интерпретировать JSON, может использовать REST API для взаимодействия с WordPress, от PHP, Node.js, Go и Java до Swift, Kotlin и других.

Даже если вы используете обычный JavaScript или jQuery в теме или плагине, REST API обеспечивает более предсказуемый и структурированный способ взаимодействия с контентом вашего сайта, чем

admin-ajax , что позволяет вам тратить меньше времени на доступ к нужным данным. и больше времени на создание лучшего пользовательского опыта.

Если вам нужен структурированный, расширяемый и простой способ получения данных в WordPress и из него, вы, вероятно, захотите использовать REST API.

При всей своей простоте REST API поначалу может показаться довольно сложным, поэтому в этом руководстве мы попытаемся разбить его на более мелкие компоненты, чтобы объяснить каждую часть полной головоломки.

Ознакомьтесь с ключевыми техническими понятиями, лежащими в основе работы REST API.

Узнайте больше о том, как взаимодействовать с ресурсами API и запрашивать определенные данные, в разделе Использование REST API.

Когда вы освоитесь с работой маршрутов и методов по умолчанию, узнайте, как добавлять новые данные в API или улучшать и управлять существующими объектами ответа в разделе «Расширение API REST».

Полный обзор ресурсов и маршрутов, доступных по умолчанию, см. в справочнике по API.

 

сообщений | Справочник по REST API

  • Схема
  • Список сообщений
    • Определение
    • Пример запроса
    • Аргументы
  • Создать сообщение
    • Аргументы
    • Определение
  • Получить сообщение
    • Определение и пример запроса
    • Аргументы
  • Обновить сообщение
    • Аргументы
    • Определение
    • Пример запроса
  • Удалить сообщение
    • Аргументы
    • Определение
    • Пример запроса

Схема определяет все поля, существующие в записи сообщения. Можно ожидать, что любой ответ от этих конечных точек будет содержать указанные ниже поля, если только не используется параметр запроса `_filter` или поле схемы появляется только в определенном контексте.

дата

строка или ноль,
дата/время (детали)

Дата публикации объекта в часовом поясе сайта.

Контекст: просмотр , редактирование , встраивание

date_gmt

строка или ноль,
datetime (детали)

Дата публикации объекта по Гринвичу.

Контекст: просмотр , редактирование

руководство

объект

Глобальный уникальный идентификатор объекта.

Только чтение

Контекст: просмотр , редактирование

идентификатор

целое число

Уникальный идентификатор объекта.

Только чтение

Контекст: просмотр , редактирование , встроить

ссылка

строка,
uri

URL-адрес объекта.

Только чтение

Контекст: просмотр , редактирование , встраивание

изменено

строка,
дата/время (детали)

Дата последнего изменения объекта в часовом поясе сайта.

Только чтение

Контекст: просмотр , редактирование

модифицированный_gmt

строка,
дата и время (детали)

Дата последнего изменения объекта по Гринвичу.

Только чтение

Контекст: просмотр , редактирование

пуля

строка

Буквенно-цифровой идентификатор объекта, уникальный для его типа.

Контекст: просмотр , редактирование , встраивание

статус

строка

Именованный статус для объекта.

Контекст: просмотр , редактирование

Один из: публикация , будущее , черновик , ожидание , частное

тип

строка

Тип поста для объекта.

Только чтение

Контекст: просмотр , редактирование , встраивание

пароль

строка

Пароль для защиты доступа к содержимому и выдержке.

Контекст: редактировать

permalink_template

строка

Шаблон постоянной ссылки для объекта.

Только чтение

Контекст: редактировать

generate_slug

строка

Слаг автоматически генерируется из заголовка объекта.

Только чтение

Контекст: редактировать

название

объект

Название объекта.

Контекст: просмотр , редактирование , встраивание

контент

объект

Содержимое объекта.

Контекст: вид , редактировать

автор

целое

ID автора объекта.

Контекст: просмотр , редактирование , встраивание

выдержка

объект

Выписка по объекту.

Контекст: вид , изменить , вставить

Featured_Media

Целое число

Идентификатор рекомендуемого медиа для объекта.

Контекст: просмотр , редактирование , встраивание

ping_status

строка

Можно ли пропинговать объект.

Контекст: просмотр , редактирование

Один из: открытый , закрытый

формат

строка

Формат объекта.

Контекст: просмотр , редактирование

Один из: стандартный , боковой , чат , галерея , ссылка , изображение , цитата , статус , видео , аудио

мета

объект

Мета поля.

Контекст: просмотр , редактирование

липкое

логическое значение

Должен ли объект рассматриваться как липкий.

Контекст: просмотр , редактирование

шаблон

строка

Файл темы, используемый для отображения объекта.

Контекст: просмотр , редактирование

категории

массив

Термины, присвоенные объекту в таксономии категорий.

Контекст: просмотр , редактирование

теги

массив

Термины, присвоенные объекту в таксономии post_tag.

Контекст: просмотр , редактирование

Запросите эту конечную точку, чтобы получить коллекцию сообщений. Полученный ответ можно контролировать и фильтровать с помощью приведенных ниже параметров URL-запроса.

ПОЛУЧИТЬ /wp/v2/posts

$ curl https://example.com/wp-json/wp/v2/posts

контекст Объем, в рамках которого делается запрос; определяет поля, присутствующие в ответе.

По умолчанию: просмотр

Один из: просмотр , вставка , редактирование

страница Текущая страница коллекции.

По умолчанию: 1

на_страницу Максимальное количество элементов, которые должны быть возвращены в результирующем наборе.

По умолчанию: 10

поиск Ограничьте результаты теми, которые соответствуют строке.
после Ограничить ответ сообщениями, опубликованными после указанной даты, соответствующей стандарту ISO8601.
автор Ограничьте набор результатов сообщениями, назначенными определенным авторам.
автор_исключить Убедитесь, что набор результатов исключает записи, назначенные конкретным авторам.
до Ограничить ответ сообщениями, опубликованными до указанной даты, соответствующей стандарту ISO8601.
исключить Убедитесь, что набор результатов исключает определенные идентификаторы.
включает Ограничьте набор результатов определенными идентификаторами.
смещение Смещение набора результатов на определенное количество элементов.
заказ Порядок сортировки атрибутов по возрастанию или убыванию.

По умолчанию: по убыванию

Один из: по возрастанию , по убыванию

заказот Сортировка коллекции по атрибуту объекта.

По умолчанию: дата

Один из: Автор , Дата , ID , , включает в себя , Модифицированный , Parent , Соответствует , Slug , Inclade_slugs , Slug , , включите_SLUGS , , , , , .

пуля Ограничьте набор результатов сообщениями с одним или несколькими конкретными слагами.
статус Ограничьте набор результатов сообщениями, которым присвоен один или несколько статусов.

По умолчанию: опубликовать

налоговое_отношение Ограничьте набор результатов на основе отношений между несколькими таксономиями.
Один из: И , ИЛИ
категории Ограничить результирующий набор всеми элементами, которым назначен указанный термин в таксономии категорий.
категории_исключить Ограничить набор результатов всеми элементами, кроме тех, которым назначен указанный термин в таксономии категорий.
теги Ограничить результирующий набор всеми элементами, которым назначен указанный термин в таксономии тегов.
теги_исключить Ограничить результирующий набор всеми элементами, кроме тех, которые имеют указанный термин, назначенный в таксономии тегов.
липкий Ограничьте результирующий набор элементами, которые являются липкими.
дата Дата публикации объекта в часовом поясе сайта.
дата_гмт Дата публикации объекта по Гринвичу.
пуля Буквенно-цифровой идентификатор объекта, уникальный для его типа.
статус Именованный статус для объекта.
Один из: публикация , будущее , черновик , ожидание , частное
пароль Пароль для защиты доступа к содержимому и выдержке.
название Название объекта.
содержание Содержимое объекта.
автор ID автора объекта.
выдержка Выписка по объекту.
Featured_Media Идентификатор рекомендуемого медиа для объекта.
комментарий_статус Открыты ли комментарии к объекту.
Один из: открытый , закрытый
ping_status Можно ли пропинговать объект.
Один из: открыт , закрыт
формат Формат объекта.
Один из: стандартный , боковой , чат , галерея , ссылка , изображение , цитата , видео 2 , статус

024 , аудио

мета Мета поля.
липкий Должен ли объект рассматриваться как липкий.
шаблон Файл темы, используемый для отображения объекта.
категории Термины, присвоенные объекту в таксономии категорий.
теги Термины, присвоенные объекту в таксономии post_tag.

ПОЧТ /wp/v2/сообщения

GET /wp/v2/posts/

Запросите эту конечную точку, чтобы получить определенную запись сообщения.

$ curl https://example. com/wp-json/wp/v2/posts/

идентификатор Уникальный идентификатор объекта.
контекст Объем, в рамках которого делается запрос; определяет поля, присутствующие в ответе.

По умолчанию: просмотр

Один из: просмотр , вставка , редактирование

пароль Пароль к посту, если он защищен паролем.
идентификатор Уникальный идентификатор объекта.
дата Дата публикации объекта в часовом поясе сайта.
дата_гмт Дата публикации объекта по Гринвичу.
пуля Буквенно-цифровой идентификатор объекта, уникальный для его типа.
статус Именованный статус для объекта.
Один из: публикация , будущее , черновик , ожидание , частное
пароль Пароль для защиты доступа к содержимому и выдержке.
название Название объекта.
содержание Содержимое объекта.
автор ID автора объекта.
выдержка Выписка по объекту.
Featured_Media Идентификатор рекомендуемого медиа для объекта.
комментарий_статус Открыты ли комментарии к объекту.
Один из: открытый , закрытый
ping_status Можно ли пропинговать объект.
Один из: открыт , закрыт
формат Формат объекта.
Один из: стандартный , боковой , чат , галерея , ссылка , изображение , цитата , видео 2 , статус

024 , аудио

мета Мета поля.
липкий Должен ли объект рассматриваться как липкий.
шаблон Файл темы, используемый для отображения объекта.
категории Термины, присвоенные объекту в таксономии категорий.
теги Термины, присвоенные объекту в таксономии post_tag.

POST /wp/v2/posts/

$ curl -X POST https://example.com/wp-json/wp/v2/posts/ -d '{"title" :"Мое новое название"}'

идентификатор Уникальный идентификатор объекта.
сила Следует ли обойти корзину и принудительно удалить.

УДАЛИТЬ /wp/v2/posts/

$ curl -X УДАЛИТЬ https://example.

Об авторе

alexxlab administrator

Оставить ответ