Как использовать REST API в WordPress для создания плагинов

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

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

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

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

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

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

<?php
/**
 * Регистрация REST API маршрута в плагине wpinfo
 */
add_action('rest_api_init', function () {
    register_rest_route('wpinfo/v1', '/latest-posts/', array(
        'methods'  => 'GET',
        'callback' => 'wpinfo_get_latest_posts',
        'permission_callback' => '__return_true',
    ));
});

function wpinfo_get_latest_posts(WP_REST_Request $request) {
    $args = array(
        'numberposts' => 5,
        'post_status' => 'publish',
    );
    $posts = wp_get_recent_posts($args);
    $data = array();
    foreach ($posts as $post) {
        $data[] = array(
            'id' => $post['ID'],
            'title' => $post['post_title'],
            'link' => get_permalink($post['ID']),
        );
    }
    return rest_ensure_response($data);
}
?>

В этом примере мы добавляем маршрут /wpinfo/v1/latest-posts/, который возвращает JSON с пятью последними опубликованными постами. Такой подход отлично подходит для создания API, которое будет использоваться внешними приложениями или JavaScript на фронтенде.

Обработка POST-запросов и создание данных через REST API

REST API не только позволяет получать данные, но и создавать, обновлять или удалять их. Рассмотрим, как в нашем плагине реализовать возможность добавления нового поста через POST-запрос.

Добавим новый маршрут и функцию обратного вызова:

add_action('rest_api_init', function () {
    register_rest_route('wpinfo/v1', '/create-post/', array(
        'methods'  => 'POST',
        'callback' => 'wpinfo_create_post',
        'permission_callback' => function () {
            return current_user_can('edit_posts');
        },
    ));
});

function wpinfo_create_post(WP_REST_Request $request) {
    $title = sanitize_text_field($request->get_param('title'));
    $content = sanitize_textarea_field($request->get_param('content'));

    if (empty($title) || empty($content)) {
        return new WP_Error('invalid_data', 'Title and content are required', array('status' => 400));
    }

    $post_id = wp_insert_post(array(
        'post_title'   => $title,
        'post_content' => $content,
        'post_status'  => 'draft',
        'post_author'  => get_current_user_id(),
    ));

    if (is_wp_error($post_id)) {
        return $post_id;
    }

    return rest_ensure_response(array('post_id' => $post_id));
}

В этом коде мы создаем маршрут /wpinfo/v1/create-post/, который принимает POST-запрос с параметрами title и content. Запросы будут приниматься только от пользователей с правами на редактирование записей. Это повышает безопасность API.

Такой функционал полезен, например, для создания фронтенд-формы публикации статей без доступа к админке.

Использование популярных плагинов для расширения REST API WordPress

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

  • WP REST API Controller — позволяет настраивать доступ к эндпоинтам и полям без написания кода.
  • Advanced Custom Fields (ACF) to REST API — автоматически добавляет данные ACF-полей в ответы REST API.
  • JWT Authentication for WP REST API — реализует механизм аутентификации через JSON Web Tokens для защищенных запросов.

Использование таких плагинов ускоряет разработку и повышает безопасность при работе с REST API.

Практические советы по безопасности и оптимизации REST API

При создании собственных эндпоинтов REST API важно помнить о безопасности. Никогда не оставляйте открытые маршруты, которые могут изменять данные без проверки прав пользователя. Всегда используйте permission_callback для контроля доступа.

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

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

Заключение: REST API — мощный инструмент для современных плагинов WordPress

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

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

WooCommerce: исключение товаров из определённых категорий из поиска
21.04.2026
Оптимизация изображений в WordPress для ускорения сайта
21.11.2025
Как изменить имя пользователя в WordPress без доступа к базе данных
26.03.2026
WooCommerce: как автоматически исключать товары из определённых категорий из корзины
15.05.2026
Как добавить динамические поля в WordPress: практическое руководство
09.03.2026