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

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

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

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

На практике REST API позволяет создавать мощные инструменты, например, фронтенды на React или Vue, мобильные приложения для управления сайтом, или интеграции с CRM и ERP-системами.

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

По умолчанию WordPress предоставляет множество маршрутов (эндпоинтов) для работы с основными сущностями: посты, страницы, пользователи, комментарии, таксономии. Все они доступны по URL вида https://ваш-сайт.ru/wp-json/wp/v2/, например:

  • /posts — список постов;
  • /pages — страницы;
  • /comments — комментарии;
  • /users — пользователи;
  • /taxonomies — таксономии и т.д.

Для получения списка постов можно выполнить GET запрос на /wp-json/wp/v2/posts. Чтобы создать новый пост — отправить POST запрос с соответствующими данными и авторизацией.

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

Аутентификация и авторизация в REST API WordPress

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

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

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

Пример настройки JWT Authentication

После установки и активации плагина в wp-config.php необходимо добавить секретный ключ:

define('JWT_AUTH_SECRET_KEY', 'wpbest_super_secret_key_12345');

Далее в запросе к API нужно отправлять заголовок:

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

Это обеспечит безопасность и позволит выполнять запросы от имени пользователя.

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

Одно из преимуществ REST API — возможность создавать свои пользовательские маршруты для работы с кастомной логикой. Рассмотрим пример плагина, который добавляет эндпоинт для получения списка последних 5 кастомных записей «portfolio».

<?php
/**
 * Plugin Name: WPBest Portfolio API
 * Description: Добавляет REST API эндпоинт для портфолио
 * Version: 1.0
 * Author: WPBest
 */

add_action('rest_api_init', function () {
    register_rest_route('wpbest/v1', '/portfolio', array(
        'methods' => 'GET',
        'callback' => 'wpbest_get_portfolio',
        'permission_callback' => '__return_true',
    ));
});

function wpbest_get_portfolio() {
    $args = array(
        'post_type' => 'portfolio',
        'posts_per_page' => 5,
        'post_status' => 'publish',
    );
    $query = new WP_Query($args);
    $items = array();

    foreach ($query->posts as $post) {
        $items[] = array(
            'id' => $post->ID,
            'title' => $post->post_title,
            'excerpt' => $post->post_excerpt,
            'link' => get_permalink($post->ID),
        );
    }

    return rest_ensure_response($items);
}

Этот код регистрирует маршрут /wp-json/wpbest/v1/portfolio, который возвращает JSON с последними 5 элементами портфолио. Для доступа к нему не нужна авторизация, но при необходимости можно добавить проверку прав в permission_callback.

Регистрация кастомного типа записи «portfolio»

Чтобы пример работал, нужно заранее зарегистрировать кастомный тип записи. Добавьте в файл плагина или functions.php темы:

function wpbest_register_portfolio_cpt() {
    $labels = array(
        'name' => 'Портфолио',
        'singular_name' => 'Портфолио',
    );

    $args = array(
        'labels' => $labels,
        'public' => true,
        'has_archive' => true,
        'show_in_rest' => true,
        'supports' => array('title', 'editor', 'excerpt', 'thumbnail'),
    );

    register_post_type('portfolio', $args);
}
add_action('init', 'wpbest_register_portfolio_cpt');

Использование REST API WordPress с JavaScript — пример запроса с Fetch API

Для фронтенда часто применяют JavaScript и Fetch API для получения данных из REST API. Пример запроса для получения последних 5 постов:

fetch('https://wpbest.ru/wp-json/wp/v2/posts?per_page=5')
  .then(response => response.json())
  .then(data => {
    data.forEach(post => {
      console.log('Заголовок:', post.title.rendered);
      console.log('Ссылка:', post.link);
    });
  })
  .catch(error => console.error('Ошибка:', error));

Так можно динамически выводить контент на страницах без перезагрузки, создавать SPA или мобильные приложения.

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

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

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

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

Рассмотренный пример плагина — лишь основа, на которой можно строить сложные проекты, добавляя обработку POST, PUT, DELETE запросов, проверки прав и работу с метаданными.

Удаление загруженных медиа файлов в WordPress по дате
07.01.2026
Как добавить собственный тип записи (custom post type) в WordPress
29.11.2025
Как настроить очистку базы данных WordPress от старых данных
19.11.2025
Как автоматизировать удаление спама в комментариях WordPress
20.12.2025
Как создать отслеживание пользовательских действий в WordPress с помощью AJAX и REST API
10.01.2026