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

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

REST API — это современный способ взаимодействия с сайтом на WordPress через HTTP-запросы. Он позволяет получать, создавать, обновлять и удалять данные сайта программно, что открывает большие возможности для создания мобильных приложений, SPA (Single Page Applications), интеграций с внешними сервисами и кастомных админ-панелей.

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

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

Основные возможности WordPress REST API

WordPress REST API позволяет:

  • Получать список записей, страниц, категорий, пользователей и других типов данных.
  • Создавать, обновлять и удалять записи и другие объекты (с учетом прав доступа).
  • Фильтровать и сортировать данные через параметры запроса.
  • Расширять API своими собственными маршрутами и методами.
  • Интегрировать WordPress с внешними приложениями и сервисами.

Рассмотрим работу с API на практике.

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

Для получения списка последних 10 записей блога можно отправить GET-запрос на URL:

https://ваш-сайт.ru/wp-json/wp/v2/posts?per_page=10

Ответ будет JSON-массивом с объектами записей, включая заголовок, содержание, дату и другие поля. Этот запрос можно выполнить через fetch в JavaScript или через curl в терминале.

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

fetch('https://ваш-сайт.ru/wp-json/wp/v2/posts?per_page=10')
  .then(response => response.json())
  .then(data => console.log(data));

Так же можно получить отдельную запись по ID, например, запись с ID 123:

GET https://ваш-сайт.ru/wp-json/wp/v2/posts/123

Регистрация собственного REST API эндпоинта в WordPress

Иногда стандартных маршрутов недостаточно, и нужно добавить свои собственные. Например, создадим эндпоинт для получения списка популярных статей по просмотрам (предположим, что у вас есть метаполе с количеством просмотров).

Добавим в functions.php или в свой плагин следующий код:

add_action('rest_api_init', function () {
    register_rest_route('wp-puzzle/v1', '/popular-posts', array(
        'methods' => 'GET',
        'callback' => 'wp_puzzle_get_popular_posts',
        'permission_callback' => '__return_true', // доступ открыт всем
    ));
});

function wp_puzzle_get_popular_posts(WP_REST_Request $request) {
    $args = array(
        'post_type' => 'post',
        'meta_key' => 'post_views_count',
        'orderby' => 'meta_value_num',
        'order' => 'DESC',
        'posts_per_page' => 5,
    );
    $query = new WP_Query($args);
    $posts = array();
    while ($query->have_posts()) {
        $query->the_post();
        $posts[] = array(
            'id' => get_the_ID(),
            'title' => get_the_title(),
            'views' => get_post_meta(get_the_ID(), 'post_views_count', true),
            'link' => get_permalink(),
        );
    }
    wp_reset_postdata();
    return $posts;
}

Теперь, отправив GET-запрос на https://ваш-сайт.ru/wp-json/wp-puzzle/v1/popular-posts, вы получите JSON с 5 популярными постами.

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

Для операций, изменяющих данные (POST, PUT, DELETE), нужна аутентификация. WordPress поддерживает несколько способов:

  • Куки авторизации, если запрос идет из админки или авторизованного пользователя.
  • Basic Auth — простой, но небезопасный способ, подходит для тестирования.
  • OAuth 1.0a — более сложный, но надежный способ.
  • JWT (JSON Web Token) — современный и удобный метод, который можно добавить через плагины.

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

Пример запроса с аутентификацией и созданием записи

Предположим, вы получили JWT токен и хотите создать новую запись через REST API. Пример curl-запроса:

curl -X POST https://ваш-сайт.ru/wp-json/wp/v2/posts \
-H "Authorization: Bearer ВАШ_ТОКЕН" \
-H "Content-Type: application/json" \
-d '{"title":"Новая статья через API","content":"Содержание статьи","status":"publish"}'

Если токен валиден и у пользователя есть права на создание записей, запись будет создана и вернется JSON с данными новой записи.

Рекомендации по безопасности

Никогда не передавайте токены в открытом виде по незащищенным каналам. Используйте HTTPS. Ограничивайте права пользователей, которые работают с API, чтобы минимизировать риски.

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

1. WP REST API Controller — позволяет удобно настраивать какие поля и типы записей доступны в API, без кода.

2. JWT Authentication for WP REST API — для добавления поддержки JWT аутентификации.

3. Advanced Custom Fields (ACF) + ACF to REST API — для работы с пользовательскими полями через API.

4. REST API Toolbox — расширяет возможности API, добавляя фильтры и другие полезные функции.

Практические советы и типичные ошибки

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

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

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

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

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как добавить собственные типы записей в WordPress с помощью Meta Box
26.03.2026
Как создать подробный отчет об ошибках WordPress с помощью плагинов и кода
12.04.2026
Как создать и использовать собственный Post Type в WordPress: подробное руководство
25.11.2025
Как изменить динамические URL в WordPress с помощью фильтров
15.03.2026
Как удалить кэш AJAX-запросов в WordPress без плагинов
15.04.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее