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

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

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

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

Основные задачи REST API в WordPress:

  • Создание интерфейсов для мобильных приложений и SPA (Single Page Applications);
  • Автоматизация публикации и обновления контента;
  • Интеграция с CRM, ERP и другими внешними системами;
  • Удалённое управление сайтом без входа в панель админки.

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

Как проверить и включить REST API в WordPress

По умолчанию REST API включён во все современные версии WordPress. Проверить его доступность можно, выполнив GET-запрос к корневой точке API:

https://ваш-сайт.ru/wp-json/

В браузере должна отобразиться JSON-структура с описанием доступных маршрутов. Если вы получаете ошибку 404 или 403, возможны следующие причины:

  • REST API отключён плагином безопасности или в functions.php;
  • Проблемы с пермалинками — попробуйте обновить их в настройках WordPress;
  • Конфликты с .htaccess или настройками сервера.

Чтобы вручную отключить REST API, часто добавляют код в functions.php, например:

add_filter('rest_enabled', '__return_false');

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

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

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

Пример регистрации кастомного эндпойнта для получения списка популярных постов:

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

function wpto_get_popular_posts(WP_REST_Request $request) {
    $args = array(
        'posts_per_page' => 5,
        'meta_key' => 'post_views_count',
        'orderby' => 'meta_value_num',
        'order' => 'DESC',
    );
    $query = new WP_Query($args);
    $posts = array();
    foreach ($query->posts as $post) {
        $posts[] = array(
            'id' => $post->ID,
            'title' => get_the_title($post->ID),
            'link' => get_permalink($post->ID),
        );
    }
    return $posts;
}

Такой эндпойнт будет доступен по адресу https://ваш-сайт.ru/wp-json/wpto/v1/popular-posts и вернёт JSON с топ-5 популярных записей.

Добавление пользовательских полей в стандартный ответ REST API

Если нужны дополнительные данные у стандартных сущностей, например, кастомное поле 'rating' у поста, можно зарегистрировать его для REST API:

add_action('rest_api_init', function () {
    register_rest_field('post', 'rating', array(
        'get_callback' => 'wpto_get_post_rating',
        'schema' => array(
            'description' => 'Рейтинг поста',
            'type' => 'integer',
            'context' => array('view', 'edit'),
        ),
    ));
});

function wpto_get_post_rating($object) {
    return (int) get_post_meta($object['id'], 'rating', true);
}

Теперь при запросе постов через REST API поле 'rating' будет включено в ответ.

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

Автоматическая публикация постов из внешнего источника

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

Пример запроса на создание поста через REST API с помощью PHP и cURL:

$url = 'https://ваш-сайт.ru/wp-json/wp/v2/posts';

$data = array(
    'title' => 'Новый пост через REST API',
    'content' => 'Содержание поста',
    'status' => 'publish'
);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Authorization: Bearer ВАШ_ТОКЕН_АВТОРИЗАЦИИ'
));

$response = curl_exec($ch);
curl_close($ch);

var_dump(json_decode($response));

Для авторизации лучше использовать Application Passwords, доступные в WordPress 5.6 и выше, или OAuth плагин.

Автоматическое обновление метаданных с помощью WPRemark

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

Для интеграции WPRemark с REST API можно настроить webhook, который будет принимать запросы и запускать обновление данных на сайте.

Безопасность REST API: как защитить сайт

REST API открывает мощные возможности, но и риски тоже есть. Важно обеспечить безопасность:

  • Авторизация и аутентификация. Для операций изменения данных используйте проверенные методы: Application Passwords, OAuth, JWT;
  • Ограничение доступа. Настраивайте права пользователей и роли, чтобы API не позволял выполнять критичные действия без разрешения;
  • Валидация и фильтрация входящих данных. Всегда проверяйте и фильтруйте данные, получаемые через API;
  • Логирование запросов. Ведите логи для отслеживания подозрительных активностей;
  • Использование SSL. Всегда применяйте HTTPS для защиты данных при передаче.

Например, можно ограничить доступ к REST API только для авторизованных пользователей в functions.php:

add_filter('rest_authentication_errors', function ($result) {
    if (!empty($result)) {
        return $result;
    }
    if (!is_user_logged_in()) {
        return new WP_Error('rest_not_logged_in', 'Доступ запрещён. Требуется авторизация.', array('status' => 401));
    }
    return $result;
});

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

  • Application Passwords — удобный способ создавать пароли для доступа к REST API;
  • WPRemark — автоматизация обработки форм и интеграция с REST API;
  • JWT Authentication — плагин для настройки аутентификации через JWT;
  • REST API Controller — позволяет управлять доступом к REST API для разных ролей.

Использование этих инструментов значительно упрощает работу с REST API и повышает уровень безопасности.

Заключение

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

Как создать адаптивную тему WordPress с применением Flexbox
18.11.2025
Как исправить ошибку WooCommerce «Невозможно создать заказ» при смене способа оплаты
28.04.2026
Как добавить автоматическую удалённую оптимизацию базы данных WordPress
21.01.2026
Как успешно использовать WPRemark для автоматизации обработки форм в WordPress
09.01.2026
Как удалить кэш в WordPress: практические способы и советы
28.01.2026