Использование WP REST API для автоматизации задач в WordPress

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

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

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

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

  • Получение записей, страниц, таксономий, пользователей и других данных в формате JSON.
  • Создание, редактирование и удаление данных через HTTP-запросы.
  • Интеграция с внешними сервисами и автоматизация процессов.

Это особенно полезно для автоматизации: например, импорт контента из внешних систем, обновление данных по расписанию или интеграция с CRM.

Подключение и базовые примеры работы с WP REST API

По умолчанию WP REST API включён в WordPress начиная с версии 4.7. Чтобы получить список последних постов, достаточно отправить GET-запрос на URL:

https://example.com/wp-json/wp/v2/posts

В ответ придёт JSON с данными. Для автоматизации на стороне сервера или в скриптах можно использовать PHP, Python, JavaScript и другие языки.

Пример получения постов на PHP с использованием wp_remote_get:

function wpelement_get_latest_posts() {
    $response = wp_remote_get('https://example.com/wp-json/wp/v2/posts?per_page=5');
    if (is_wp_error($response)) {
        return [];
    }
    $body = wp_remote_retrieve_body($response);
    $posts = json_decode($body, true);
    return $posts;
}

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

Автоматизация создания и обновления контента через WP REST API

Для создания записи через REST API нужно отправить POST-запрос на /wp-json/wp/v2/posts с необходимыми данными, например, заголовком и содержимым. Однако для этого требуется авторизация.

Пример на PHP с использованием базовой аутентификации (Basic Auth):

function wpelement_create_post($title, $content, $username, $password) {
    $url = 'https://example.com/wp-json/wp/v2/posts';
    $data = [
        'title'   => $title,
        'content' => $content,
        'status'  => 'publish'
    ];
    $args = [
        'headers' => [
            'Authorization' => 'Basic ' . base64_encode($username . ':' . $password),
            'Content-Type'  => 'application/json'
        ],
        'body'    => json_encode($data),
        'method'  => 'POST'
    ];
    $response = wp_remote_request($url, $args);
    if (is_wp_error($response)) {
        return false;
    }
    return json_decode(wp_remote_retrieve_body($response), true);
}

Такой подход позволяет автоматизировать публикацию контента из внешних систем, например, CRM или ERP.

Настройка аутентификации для безопасности

WP REST API по умолчанию поддерживает несколько методов аутентификации: cookie, Basic Auth, OAuth и JWT. Для автоматизации лучше использовать JWT (JSON Web Token) или OAuth, так как Basic Auth передаёт пароль в открытом виде.

Плагин Clearfy Pro помогает настроить безопасный доступ к REST API и отключить ненужные эндпоинты для защиты сайта.

Пример автоматической очистки черновиков и ревизий с помощью WP REST API и CRON

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

Пример PHP-скрипта для удаления черновиков через REST API:

function wpelement_delete_drafts($username, $password) {
    $url = 'https://example.com/wp-json/wp/v2/posts?status=draft&per_page=100';
    $args = [
        'headers' => [
            'Authorization' => 'Basic ' . base64_encode($username . ':' . $password)
        ]
    ];
    $response = wp_remote_get($url, $args);
    if (is_wp_error($response)) return;
    $posts = json_decode(wp_remote_retrieve_body($response), true);
    foreach ($posts as $post) {
        $delete_url = 'https://example.com/wp-json/wp/v2/posts/' . $post['id'] . '?force=true';
        $del_args = [
            'method'  => 'DELETE',
            'headers' => $args['headers']
        ];
        wp_remote_request($delete_url, $del_args);
    }
}

Этот скрипт можно запускать по CRON на сервере для автоматической очистки.

Плагины для расширения возможностей WP REST API

Для удобства работы с WP REST API существуют плагины, которые добавляют новые эндпоинты и функции:

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

Также плагин WPCommunity может помочь в интеграции REST API для сайтов с социальной составляющей.

Советы по оптимизации и безопасности при работе с WP REST API

При автоматизации важно помнить о безопасности и производительности:

  • Ограничьте доступ к REST API только необходимым пользователям и приложениям.
  • Используйте современные методы аутентификации (JWT, OAuth).
  • Кэшируйте ответы, если данные не меняются часто, чтобы снизить нагрузку.
  • Логируйте запросы для анализа и выявления подозрительной активности.
  • Регулярно обновляйте WordPress и плагины для защиты от уязвимостей.

Плагин Clearfy Pro отлично помогает в тонкой настройке безопасности REST API.

Как использовать AJAX в WordPress для обновления контента без перезагрузки страницы
05.12.2025
Автоматическое удаление товаров WooCommerce при отсутствии на складе
26.04.2026
Автоматическое удаление товаров в WooCommerce при отсутствии на складе
18.04.2026
Как добавить уникальный meta box в WordPress с поддержкой AJAX
01.02.2026
Как удалить записи по мета-полю в WordPress
09.12.2025