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

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

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

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

Основные преимущества использования REST API:

  • Автоматизация рутинных задач (создание постов, обновление метаданных и т.д.)
  • Интеграция с внешними системами (CRM, ERP, маркетинговые платформы)
  • Возможность создания кастомных приложений и интерфейсов управления контентом

Для работы с REST API используются стандартные HTTP-методы: GET, POST, PUT, DELETE, что делает API универсальным и понятным.

Настройка и базовое использование REST API WordPress

По умолчанию REST API включён в WordPress начиная с версии 4.7. Для обращения к API достаточно знать URL в формате https://example.com/wp-json/wp/v2/. Например, для получения списка постов можно отправить GET-запрос по адресу https://example.com/wp-json/wp/v2/posts.

Для выполнения защищённых операций (создание, изменение, удаление) требуется аутентификация. Самый простой способ – использовать JWT-аутентификацию или Basic Auth, но для продакшена рекомендуется OAuth или Application Passwords.

Пример запроса списка постов с помощью PHP

$response = wp_remote_get('https://example.com/wp-json/wp/v2/posts');
if (is_wp_error($response)) {
    echo 'Ошибка запроса';
    return;
}
$posts = json_decode(wp_remote_retrieve_body($response));
foreach ($posts as $post) {
    echo $post->title->rendered . "\n";
}

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

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

REST API позволяет программно создавать записи, что полезно для интеграции с внешними источниками данных или при массовом импорте. Ниже пример создания нового поста с помощью PHP и Basic Auth.

$url = 'https://example.com/wp-json/wp/v2/posts';
$data = [
    'title' => 'Автоматический пост от WPTO',
    'content' => 'Содержание поста создаётся программно через REST API.',
    'status' => 'publish'
];

$args = [
    'headers' => [
        'Authorization' => 'Basic ' . base64_encode('user:password'),
        'Content-Type' => 'application/json'
    ],
    'body' => json_encode($data),
    'method' => 'POST'
];

$response = wp_remote_post($url, $args);
if (is_wp_error($response)) {
    echo 'Ошибка создания поста';
} else {
    echo 'Пост успешно создан: ' . wp_remote_retrieve_body($response);
}

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

Обновление и удаление записей через REST API

Для обновления записи используется метод POST или PUT по адресу /wp-json/wp/v2/posts/{id}. Для удаления — метод DELETE.

// Обновление заголовка поста с ID 123
$url = 'https://example.com/wp-json/wp/v2/posts/123';
$data = ['title' => 'Обновлённый заголовок'];
$args = [
    'headers' => [
        'Authorization' => 'Basic ' . base64_encode('user:password'),
        'Content-Type' => 'application/json'
    ],
    'body' => json_encode($data),
    'method' => 'POST'
];
$response = wp_remote_post($url, $args);

// Удаление поста
$url = 'https://example.com/wp-json/wp/v2/posts/123?force=true';
$args['method'] = 'DELETE';
$response = wp_remote_request($url, $args);

Работа с кастомными типами записей и метаданными через REST API

Если на сайте используются кастомные типы записей (custom post types) и таксономии, REST API позволяет взаимодействовать и с ними. Для этого при регистрации типа записи нужно задать параметр 'show_in_rest' => true.

Пример регистрации кастомного типа записи с поддержкой REST API:

function wpto_register_custom_post_type() {
    register_post_type('product', [
        'label' => 'Продукты',
        'public' => true,
        'show_in_rest' => true,
        'supports' => ['title', 'editor', 'custom-fields'],
    ]);
}
add_action('init', 'wpto_register_custom_post_type');

После этого вы сможете получать, создавать и обновлять записи типа product через REST API по адресу /wp-json/wp/v2/product.

Для работы с пользовательскими метаданными можно использовать эндпоинты REST API, настроив поле register_meta с параметром 'show_in_rest' => true:

function wpto_register_meta() {
    register_post_meta('product', 'price', [
        'type' => 'number',
        'single' => true,
        'show_in_rest' => true,
    ]);
}
add_action('init', 'wpto_register_meta');
<

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

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

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

  • Clearfy Pro — оптимизация и расширение функционала WordPress, в том числе улучшение безопасности REST API.
  • WPRemark — автоматизация обработки форм, может интегрироваться с REST API для передачи данных.
  • WPGPT — генерация контента с поддержкой API, что позволяет комбинировать REST API с ИИ-технологиями.

Использование этих инструментов поможет сделать автоматизацию более гибкой и надёжной.

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

REST API открывает удалённый доступ к данным сайта, поэтому важно соблюдать меры безопасности:

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

Пример ограничения доступа к REST API для гостей:

add_filter('rest_authentication_errors', function($result) {
    if (!is_user_logged_in()) {
        return new WP_Error('rest_forbidden', 'Доступ запрещён', ['status' => 401]);
    }
    return $result;
});

Заключение

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

Как исправить ошибку WooCommerce «Невозможно создать заказ» при смене способа оплаты
21.05.2026
Как исправить ошибку WooCommerce «Невозможно создать заказ» при смене способа оплаты
28.04.2026
Как использовать хук woocommerce_checkout_update_order_meta для добавления данных к заказу
02.05.2026
Как отключить автоматическое удаление старых заказов в WooCommerce
21.05.2026
Как удалить версии WordPress из базы данных и ускорить сайт
25.11.2025