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

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

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

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

Использование REST API актуально для:

  • Создания мобильных приложений, которые получают данные с сайта WordPress;
  • Интеграции с внешними сервисами и приложениями;
  • Построения фронтендов на React, Vue или других JS-фреймворках, отделённых от бекенда;
  • Автоматизации процессов управления контентом.

REST API возвращает данные в формате JSON, что упрощает их анализ и использование в различных средах.

Основные эндпоинты и структура запросов REST API в WordPress

По умолчанию WordPress предоставляет стандартные маршруты, например:

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

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

GET https://wp-kit.ru/wp-json/wp/v2/posts

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

Обратите внимание, что для изменения данных (POST, PUT, DELETE) необходима авторизация, обычно через OAuth, JWT или встроенную cookie-сессию.

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

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

Для регистрации собственного маршрута используется функция register_rest_route. Рассмотрим пример создания маршрута, который возвращает список последних 5 популярных постов (условие популярности — произвольное поле post_views_count):

add_action('rest_api_init', function() {
    register_rest_route('wpkit/v1', '/popular-posts/', array(
        'methods' => 'GET',
        'callback' => 'wpkit_get_popular_posts',
    ));
});

function wpkit_get_popular_posts() {
    $args = [
        'posts_per_page' => 5,
        'meta_key' => 'post_views_count',
        'orderby' => 'meta_value_num',
        'order' => 'DESC',
    ];
    $query = new WP_Query($args);
    $posts = [];
    foreach ($query->posts as $post) {
        $posts[] = [
            'id' => $post->ID,
            'title' => $post->post_title,
            'link' => get_permalink($post),
            'views' => get_post_meta($post->ID, 'post_views_count', true),
        ];
    }
    return $posts;
}

Теперь по адресу /wp-json/wpkit/v1/popular-posts/ можно получить массив популярных постов в формате JSON.

Добавление кастомных полей в ответ REST API

Если у вас есть произвольные поля, которые нужно включать в стандартные ответы, регистрируйте их через register_rest_field:

add_action('rest_api_init', function() {
    register_rest_field('post', 'post_views_count', [
        'get_callback' => function($post) {
            return get_post_meta($post['id'], 'post_views_count', true);
        },
        'schema' => null,
    ]);
});

После этого в ответах на /wp-json/wp/v2/posts у каждого поста появится поле post_views_count.

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

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

  • WP REST API Controller — позволяет управлять доступом и настройками стандартных эндпоинтов;
  • Advanced Custom Fields (ACF) to REST API — добавляет поля ACF в REST-вызовы;
  • WP OAuth Server — добавляет поддержку OAuth 2.0 для безопасной авторизации;
  • JWT Authentication for WP REST API — реализует авторизацию через JWT-токены.

Использование этих плагинов значительно упрощает разработку и интеграцию.

Примеры использования REST API на практике

Создание простого фронтенда на JavaScript

Допустим, нужно вывести последние 5 постов на отдельной странице без перезагрузки. Вот простой пример на чистом JS:

fetch('https://wp-kit.ru/wp-json/wp/v2/posts?per_page=5')
  .then(response => response.json())
  .then(data => {
    const container = document.getElementById('posts-container');
    data.forEach(post => {
      const div = document.createElement('div');
      div.innerHTML = `<h3>${post.title.rendered}</h3><p>${post.excerpt.rendered}</p>`;
      container.appendChild(div);
    });
  });

Такой подход подходит для статичных сайтов, SPA и гибких кастомных решений.

Обновление поста через REST API с авторизацией

Для обновления поста необходимо отправить PATCH-запрос с токеном авторизации. Пример на PHP с использованием JWT:

$post_id = 123;
$token = 'ваш_jwt_токен';
$data = [
    'title' => 'Обновленный заголовок',
    'content' => 'Новый контент поста'
];

$ch = curl_init("https://wp-kit.ru/wp-json/wp/v2/posts/{$post_id}");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Content-Type: application/json",
    "Authorization: Bearer {$token}"
]);
$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
print_r($result);

Без правильной авторизации сервер вернёт ошибку 401 или 403.

Советы по безопасности при работе с REST API

REST API открывает множество возможностей, но и требует внимания к безопасности:

  • Ограничивайте права пользователей, которые могут создавать, изменять или удалять данные через API;
  • Используйте безопасные методы авторизации (OAuth, JWT);
  • Проверяйте и валидируйте данные на сервере;
  • Отключайте ненужные эндпоинты, если они не используются;
  • Следите за обновлениями WordPress и плагинов для своевременного устранения уязвимостей.

Заключение

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

Как отладить проблему: не работает отправка писем через PHPMailer в WordPress
20.06.2026
Оптимизация изображений в WordPress с помощью автоматических плагинов
08.11.2025
Как проверить и исправить проблемы с переадресацией в WordPress без плагинов
09.06.2026
Как добавить собственные поля в WordPress без плагинов
11.11.2025
Автоматическое отображение динамических пользовательских форм в WordPress
20.03.2026