Как использовать REST API в WordPress для создания приложений

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

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

REST API — это набор стандартных конечных точек (endpoints), которые позволяют получать, создавать, изменять и удалять данные на сайте WordPress через HTTP-запросы. Он использует методы HTTP как GET, POST, PUT, DELETE, что делает взаимодействие с сайтом похожим на работу с любой современной веб-сервисом.

С помощью REST API можно:

  • Создавать одностраничные приложения (SPA) на React, Vue или Angular, используя WordPress как бекенд.
  • Разрабатывать мобильные приложения, которые получают данные сайта напрямую.
  • Интегрировать WordPress с внешними сервисами и системами.
  • Автоматизировать задачи по управлению контентом.

Как получить данные через REST API WordPress

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

https://wordpressa.ru/wp-json/wp/v2/posts

Этот запрос вернёт JSON-массив с информацией о постах, включая заголовки, содержание и метаданные.

Вы можете фильтровать результаты, например, получить 5 последних постов из категории с ID 3:

https://wordpressa.ru/wp-json/wp/v2/posts?categories=3&per_page=5

Для выполнения таких запросов в PHP или JavaScript достаточно использовать стандартные инструменты работы с HTTP.

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

Вот простой пример, как получить и вывести заголовки последних постов с помощью fetch:

fetch('https://wordpressa.ru/wp-json/wp/v2/posts?per_page=5')
  .then(response => response.json())
  .then(posts => {
    posts.forEach(post => {
      console.log(post.title.rendered);
    });
  });

Добавление собственного маршрута REST API в WordPress

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

Для этого нужно использовать хук rest_api_init и функцию register_rest_route. Рассмотрим пример, как создать собственный маршрут, который вернёт приветственное сообщение.

add_action('rest_api_init', 'wordpressa_register_custom_route');
function wordpressa_register_custom_route() {
  register_rest_route('wordpressa/v1', '/hello', array(
    'methods' => 'GET',
    'callback' => 'wordpressa_hello_callback',
  ));
}

function wordpressa_hello_callback() {
  return array('message' => 'Привет от WordPressa REST API!');
}

После добавления этого кода в файл functions.php вашей темы или в собственный плагин, при обращении к URL https://wordpressa.ru/wp-json/wordpressa/v1/hello вы получите JSON с сообщением.

Передача параметров в маршрут

Маршруты могут принимать параметры. Например, создадим маршрут, который принимает имя пользователя и возвращает персональное приветствие:

add_action('rest_api_init', 'wordpressa_register_greet_route');
function wordpressa_register_greet_route() {
  register_rest_route('wordpressa/v1', '/greet/(?P<name>[a-zA-Z0-9_-]+)', array(
    'methods' => 'GET',
    'callback' => 'wordpressa_greet_callback',
  ));
}

function wordpressa_greet_callback($request) {
  $name = $request->get_param('name');
  return array('message' => "Привет, $name! Добро пожаловать на wordpressa.ru.");
}

Теперь запрос https://wordpressa.ru/wp-json/wordpressa/v1/greet/Anna вернёт сообщение Привет, Anna! Добро пожаловать на wordpressa.ru.

Аутентификация и безопасность REST API

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

  • Cookie и nonce — для запросов с фронтенда сайта, где пользователь уже авторизован.
  • Basic Auth — для тестов и простых сценариев, не рекомендуется в продакшене.
  • OAuth и JWT — для более безопасных и сложных интеграций.

Пример добавления проверки прав в кастомном маршруте:

register_rest_route('wordpressa/v1', '/secure-data', array(
  'methods' => 'GET',
  'callback' => 'wordpressa_secure_data_callback',
  'permission_callback' => function() {
    return current_user_can('edit_posts');
  }
));

function wordpressa_secure_data_callback() {
  return array('data' => 'Секретная информация');
}

Без правильной аутентификации вызов этого маршрута вернёт ошибку 403.

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

Для расширения возможностей REST API и интеграции с ним есть несколько полезных плагинов:

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

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

Заключение: практические советы по работе с REST API WordPress

При работе с REST API важно:

  • Тщательно планировать структуру маршрутов и их безопасность.
  • Использовать встроенные возможности WordPress для аутентификации и проверок прав.
  • Оптимизировать запросы и отдавать только необходимые данные, чтобы не перегружать сетевой трафик.
  • Тестировать созданные маршруты с помощью инструментов Postman или curl.

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

Как сделать отзывы с оценками без плагинов
05.01.2026
Как использовать Custom Post Types для создания нестандартных типов записей
09.12.2025
Оптимизация базы данных WordPress для ускорения сайта
10.11.2025
Как удалить старые ревизии записей и оптимизировать базу WordPress
09.02.2026
WooCommerce: устройство автоматического создания счетов-фактур для заказов
29.05.2026