Как использовать REST API в WordPress для начинающих

WordPress REST API — это мощный инструмент, который позволяет взаимодействовать с сайтом на WordPress не только через стандартный интерфейс, но и через внешние приложения и сервисы. В этой статье мы подробно рассмотрим, как использовать REST API в WordPress, настроить собственные эндпоинты и получать данные в формате JSON. Это особенно полезно для разработчиков, которые хотят создать мобильные приложения, SPA (Single Page Application) или интегрировать WordPress с другими системами.

Что такое WordPress REST API и зачем он нужен

REST API (Representational State Transfer Application Programming Interface) — это интерфейс программирования, который позволяет обмениваться данными между клиентом и сервером по протоколу HTTP. В случае WordPress REST API вы можете получать, создавать, обновлять и удалять записи, страницы, пользователей и другие сущности через HTTP-запросы.

Основные преимущества REST API в WordPress:

  • Универсальность — позволяет работать с сайтом из любого приложения, поддерживающего HTTP.
  • Гибкость — можно создавать свои собственные эндпоинты для любых целей.
  • Формат JSON — удобен для JavaScript и других языков программирования.

Это открывает новые возможности для разработки, например, создание кастомных фронтендов на React, Vue или мобильных приложений, которые работают с данными WordPress.

Как работать с REST API в WordPress — базовые запросы

WordPress уже имеет встроенные стандартные эндпоинты REST API для таких сущностей, как посты, страницы, категории, пользователи и т.д. Чтобы получить список последних записей, достаточно отправить GET-запрос на адрес:

https://ваш_сайт/wp-json/wp/v2/posts

Пример вывода — массив JSON с информацией о постах.

Можно также получить конкретный пост по ID:

https://ваш_сайт/wp-json/wp/v2/posts/123

Для создания, обновления или удаления записей необходимо авторизоваться, например, с помощью JWT или cookie авторизации.

Пример запроса с помощью fetch в JavaScript

fetch('https://ваш_сайт/wp-json/wp/v2/posts')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Ошибка:', error));

Этот код получает список постов и выводит их в консоль браузера.

Создание собственного эндпоинта REST API в WordPress

Часто стандартных эндпоинтов недостаточно, и нужно создать кастомные методы для специфичных задач. Для этого WordPress предоставляет функцию register_rest_route.

Рассмотрим простой пример создания эндпоинта, который возвращает текущее время сервера.

add_action('rest_api_init', 'wpskill_register_custom_route');
function wpskill_register_custom_route() {
    register_rest_route('wpskill/v1', '/time', array(
        'methods' => 'GET',
        'callback' => 'wpskill_get_server_time',
    ));
}

function wpskill_get_server_time() {
    return array('time' => current_time('mysql'));
}

Теперь при запросе https://ваш_сайт/wp-json/wpskill/v1/time вы получите JSON с текущим временем сервера.

Подробности регистрации эндпоинта

В функции register_rest_route первый параметр — это пространство имён и версия API (здесь 'wpskill/v1'). Второй — путь до метода (здесь '/time'). В массиве аргументов указываются HTTP методы и callback-функция.

Callback-функция должна возвращать данные, которые автоматически сериализуются в JSON.

Авторизация для защищённых эндпоинтов REST API

Если ваш эндпоинт должен изменять данные, например создавать или редактировать посты, необходима авторизация. В WordPress REST API по умолчанию используется cookie авторизация для админ-панели. Для внешних клиентов удобнее использовать JWT (JSON Web Token).

Пример плагина для JWT: JWT Authentication for WP REST API. После установки и настройки плагина вы можете получить токен, отправив POST-запрос с логином и паролем, а затем использовать токен в заголовке Authorization.

Authorization: Bearer ваш_токен

Это позволит безопасно работать с REST API из внешних приложений.

Пример создания поста через REST API с авторизацией

После получения токена можно создать новый пост, отправив POST-запрос на /wp-json/wp/v2/posts с заголовками и телом:

POST /wp-json/wp/v2/posts
Headers:
Authorization: Bearer ваш_токен
Content-Type: application/json

Body:
{
  "title": "Новый пост через REST API",
  "content": "Содержимое поста",
  "status": "publish"
}

В ответ получите JSON с информацией о созданном посте.

Полезные плагины для работы с REST API в WordPress

  • WP REST API Controller — удобный интерфейс для настройки видимости и прав доступа к REST API для различных типов записей и таксономий.
  • Advanced Custom Fields to REST API — расширяет REST API, добавляя поля ACF к стандартному выводу постов.
  • JWT Authentication for WP REST API — реализует JWT авторизацию, о которой говорилось выше.

Использование этих плагинов значительно упрощает разработку и расширение возможностей REST API под свои задачи.

Советы и рекомендации при работе с REST API в WordPress

При разработке собственных эндпоинтов и работе с REST API учитывайте следующие моменты:

  • Обязательно проверяйте права пользователя и авторизацию, чтобы не допустить несанкционированных действий.
  • Используйте nonce или JWT для безопасности внешних запросов.
  • Кэшируйте ответы, если данные не меняются часто, чтобы снизить нагрузку на сервер.
  • Документируйте свои эндпоинты, чтобы другие разработчики и вы сами могли быстро понять структуру и назначение.

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

Автоматическое удаление старых записей в WordPress через WP-Cron
10.01.2026
Как добавить динамические атрибуты товара в WooCommerce с примерами кода
01.05.2026
Как отключить XML Sitemap в WordPress без плагинов
07.04.2026
Как автоматизировать управление ролями и правами в WordPress с примерами кода
17.03.2026
Автоматическое создание Sitemap XML в WordPress: практическое руководство
15.02.2026