Как использовать REST API в WordPress для автоматизации задач

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

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

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

С помощью REST API можно:

  • Автоматически создавать и обновлять записи и страницы;
  • Интегрировать WordPress с мобильными приложениями или внешними системами;
  • Создавать кастомные интерфейсы управления контентом;
  • Реализовывать сложные сценарии публикации и модерации через скрипты.

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

Основы работы с REST API в WordPress

Чтобы начать использовать REST API, нужно знать базовые URL и методы HTTP-запросов. По умолчанию базовый адрес API выглядит так:

https://your-site.com/wp-json/wp/v2/

Например, получить список последних постов можно запросом GET к /wp-json/wp/v2/posts. Чтобы создать новую запись, используется метод POST с передачей данных в формате JSON.

Для авторизации чаще всего применяется метод OAuth или использование Application Passwords (паролей приложений), которые появились в WordPress 5.6. Это позволяет безопасно выполнять защищённые операции через API.

Пример получения списка публикаций через PHP

Для примера создадим функцию с префиксом домена, которая получит последние 5 постов с сайта через REST API и выведет их заголовки:

function wprobot_get_latest_posts() {
    $response = wp_remote_get('https://your-site.com/wp-json/wp/v2/posts?per_page=5');
    if (is_wp_error($response)) {
        return 'Ошибка получения данных';
    }
    $posts = json_decode(wp_remote_retrieve_body($response));
    if (empty($posts)) {
        return 'Посты не найдены';
    }
    $output = '<ul>';
    foreach ($posts as $post) {
        $output .= '<li>' . esc_html($post->title->rendered) . '</li>';
    }
    $output .= '</ul>';
    return $output;
}

Эту функцию можно использовать в шорткоде или виджете для динамического вывода данных.

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

Среди плагинов, расширяющих возможности REST API или облегчающих автоматизацию, рекомендую обратить внимание на следующие:

  • WP REST API Controller — позволяет гибко управлять доступом и настройками эндпоинтов API без кода.
  • Advanced Custom Fields (ACF) с дополнением для REST API — расширяет стандартный API для работы с кастомными полями.
  • WP Webhooks — плагин для создания вебхуков и автоматизации обмена данными с внешними сервисами.
  • WP All Import / Export — поддерживает работу через REST API для массового импорта и экспорта данных.

Автоматическое создание постов через REST API и PHP

Рассмотрим, как с помощью REST API программно создавать новые записи. Для этого нужно отправить POST-запрос с авторизацией. Ниже пример функции для создания поста с использованием базовой авторизации (Application Passwords):

function wprobot_create_post_via_api($title, $content, $username, $app_password) {
    $url = 'https://your-site.com/wp-json/wp/v2/posts';
    $data = [
        'title'   => $title,
        'content' => $content,
        'status'  => 'publish'
    ];
    $args = [
        'headers' => [
            'Authorization' => 'Basic ' . base64_encode($username . ':' . $app_password),
            'Content-Type'  => 'application/json'
        ],
        'body'    => json_encode($data),
        'method'  => 'POST'
    ];
    $response = wp_remote_post($url, $args);
    if (is_wp_error($response)) {
        return 'Ошибка: ' . $response->get_error_message();
    }
    $code = wp_remote_retrieve_response_code($response);
    if ($code !== 201) {
        return 'Не удалось создать пост, код ответа: ' . $code;
    }
    return 'Пост успешно создан';
}

Важно помнить, что в реальном проекте лучше использовать nonce и более безопасные методы аутентификации, а также обрабатывать ошибки и исключения более детально.

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

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

Пример создания кастомного эндпоинта, который возвращает текущее время сервера:

add_action('rest_api_init', function () {
    register_rest_route('wprobot/v1', '/time', [
        'methods'  => 'GET',
        'callback' => 'wprobot_get_server_time',
    ]);
});

function wprobot_get_server_time() {
    return ['time' => current_time('mysql')];
}

Этот эндпоинт будет доступен по адресу /wp-json/wprobot/v1/time и вернёт текущую дату и время по серверу. При помощи таких расширений можно строить сложные API для интеграций и автоматизации.

Практические советы по безопасности и производительности

Работая с REST API, важно уделять внимание безопасности:

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

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

Итоги

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

Как использовать WP Community для автоматизации управления пользователями WordPress
03.04.2026
Как автоматически сохранять данные пользователя в WordPress без плагинов
14.03.2026
Как автоматически отключить неиспользуемые скрипты и стили в WordPress
19.05.2026
Как автоматически отслеживать изменения файлов в WordPress с помощью Watchdog
14.02.2026
Как автоматически удалять старые медиафайлы в WordPress
24.03.2026