Руководство по использованию REST API WordPress для разработчиков

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

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

REST API — это интерфейс программирования приложений, который позволяет взаимодействовать с сайтом WordPress через HTTP-запросы. Он предоставляет доступ к данным сайта (записям, страницам, пользователям и другим сущностям) в формате JSON, что упрощает интеграцию с внешними сервисами и фронтенд-приложениями на React, Vue, Angular и других.

Основные преимущества использования REST API:

  • Отделение фронтенда от бэкенда — можно создавать SPA или мобильные приложения.
  • Упрощённая интеграция с внешними системами и микросервисами.
  • Расширяемость за счёт добавления собственных маршрутов и эндпоинтов.

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

Основные стандартные маршруты REST API WordPress

Чтобы начать работать с REST API, достаточно отправить GET-запросы к стандартным маршрутам. Вот несколько ключевых:

  • /wp-json/wp/v2/posts — список записей блога.
  • /wp-json/wp/v2/pages — список страниц.
  • /wp-json/wp/v2/categories — категории записей.
  • /wp-json/wp/v2/users — пользователи (требует авторизации).

Пример получения первых 5 записей с помощью стандартного REST API:

fetch('https://wpmy.ru/wp-json/wp/v2/posts?per_page=5')
  .then(response => response.json())
  .then(data => console.log(data));

Ответ будет в формате JSON, содержащем подробную информацию о каждой записи.

Как создать собственный REST API эндпоинт в WordPress (WPMy пример)

Часто возникает необходимость добавить свои кастомные маршруты, например, для работы с кастомными типами записей или для реализации бизнес-логики. Ниже пример создания простого эндпоинта, который возвращает список последних 3 кастомных постов с типом product.

add_action('rest_api_init', 'wpmy_register_custom_routes');
function wpmy_register_custom_routes() {
  register_rest_route('wpmy/v1', '/latest-products/', [
    'methods' => 'GET',
    'callback' => 'wpmy_get_latest_products',
    'permission_callback' => '__return_true',
  ]);
}

function wpmy_get_latest_products(WP_REST_Request $request) {
  $args = [
    'post_type' => 'product',
    'posts_per_page' => 3,
    'post_status' => 'publish',
  ];
  $query = new WP_Query($args);
  $products = [];
  if ($query->have_posts()) {
    while ($query->have_posts()) {
      $query->the_post();
      $products[] = [
        'id' => get_the_ID(),
        'title' => get_the_title(),
        'link' => get_permalink(),
      ];
    }
    wp_reset_postdata();
  }
  return rest_ensure_response($products);
}

После добавления этого кода в файл плагина или functions.php темы вы сможете получить данные по адресу /wp-json/wpmy/v1/latest-products/.

Авторизация и безопасность в REST API WordPress

Для чтения публичных данных обычно авторизация не требуется. Но если вы хотите создавать, обновлять или удалять записи через API, нужно обеспечить безопасную авторизацию.

WordPress поддерживает несколько методов авторизации:

  • Cookie (внутренние запросы через админку) — подходит для AJAX-запросов с фронтенда сайта.
  • Basic Auth — простой, но небезопасный способ (рекомендуется использовать только в тестах).
  • OAuth 1.0a и JWT (JSON Web Tokens) — более безопасные и часто используемые методы для REST API.

Для примера, рассмотрим установку и использование плагина JWT Authentication for WP REST API для авторизации с помощью токенов.

Шаги:

  1. Установите и активируйте плагин JWT Authentication for WP REST API.
  2. Настройте .htaccess и wp-config.php согласно инструкции плагина (добавьте секретный ключ).
  3. Получите токен, отправив POST-запрос на /wp-json/jwt-auth/v1/token с параметрами username и password.
  4. Используйте токен в заголовке Authorization: Bearer YOUR_TOKEN для последующих запросов.

Пример обновления записи через REST API с использованием JWT

После получения токена можно обновить запись, отправив PATCH-запрос:

fetch('https://wpmy.ru/wp-json/wp/v2/posts/123', {
  method: 'PATCH',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_TOKEN'
  },
  body: JSON.stringify({
    title: 'Обновлённый заголовок'
  })
})
.then(response => response.json())
.then(data => console.log(data));

Расширение REST API: добавление своих полей к стандартным объектам

Иногда нужно добавить кастомные метаполя к ответам REST API. Это делается через регистрацию поля с помощью register_rest_field.

add_action('rest_api_init', 'wpmy_register_custom_fields');
function wpmy_register_custom_fields() {
  register_rest_field('post', 'wpmy_custom_meta', [
    'get_callback' => 'wpmy_get_custom_meta',
    'update_callback' => 'wpmy_update_custom_meta',
    'schema' => null,
  ]);
}

function wpmy_get_custom_meta($object) {
  return get_post_meta($object['id'], '_wpmy_custom_meta_key', true);
}

function wpmy_update_custom_meta($value, $object) {
  if (!is_string($value)) {
    return new WP_Error('rest_invalid_param', 'Неверный формат значения', ['status' => 400]);
  }
  update_post_meta($object->ID, '_wpmy_custom_meta_key', sanitize_text_field($value));
}

Теперь при запросе записи в REST API в ответе будет поле wpmy_custom_meta, которое можно получать и обновлять.

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

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

Заключение и рекомендации по использованию REST API в WordPress

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

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

Освоив REST API WordPress, вы сможете значительно расширить возможности вашего сайта и интегрировать его с любыми внешними сервисами и приложениями.

Как создать динамическую навигацию в WordPress с помощью AJAX
03.03.2026
Как использовать WP GraphQL для создания современных приложений на WordPress
30.12.2025
Как отключить автообновления WordPress и плагинов с примерами кода
30.11.2025
Как оценивать и управлять загрузкой сервера WordPress
04.01.2026
WooCommerce: автоматическое обновление статуса заказа после отправки
22.05.2026