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

Что такое REST API в WordPress и зачем его использовать для работы с записями

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

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

В WordPress REST API встроен изначально, начиная с версии 4.7, что обеспечивает надежную и стандартизированную работу с данными.

Основные эндпоинты для работы с записями и их возможности

Для работы с записями (post) в WordPress REST API используются следующие основные маршруты:

  • /wp-json/wp/v2/posts — получение списка записей и создание новых;
  • /wp-json/wp/v2/posts/{id} — получение, обновление или удаление конкретной записи по ID.

Методы HTTP:

  • GET — получить данные;
  • POST — создать новую запись;
  • PUT/PATCH — обновить запись;
  • DELETE — удалить запись.

Для создания и обновления записей нужно иметь соответствующие права (обычно роль редактора или администратора) и пройти аутентификацию.

Аутентификация и безопасность при работе с REST API

Безопасность — ключевой момент при работе с REST API, особенно для изменения данных. По умолчанию WordPress REST API требует аутентификацию для POST, PUT и DELETE запросов.

Самые распространённые методы аутентификации:

  • Cookie Authentication — работает, если запросы идут с фронтенда сайта, где пользователь авторизован.
  • Basic Authentication — простой, но менее безопасный способ. Требует установки плагина Basic Auth.
  • OAuth 1.0a — более сложный, но безопасный и рекомендуемый для внешних приложений.
  • Application Passwords — встроенный в WordPress способ, удобный для API-запросов с использованием логина и сгенерированного пароля.

Для примера здесь будем использовать Application Passwords.

Пример создания записи через REST API с использованием Application Passwords

Для начала нужно сгенерировать пароль приложения в профиле пользователя WordPress (Пользователи > Ваш профиль > Пароли приложений).

Далее пример запроса на создание записи с помощью PHP и cURL:

$username = 'admin';
$app_password = 'abcd efgh ijkl mnop'; // пароль приложения с пробелами
$post_data = [
    'title' => 'Новая запись через REST API',
    'content' => 'Содержимое записи, созданной программно.',
    'status' => 'publish'
];

$ch = curl_init('https://wpmanual.ru/wp-json/wp/v2/posts');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$app_password");

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

var_dump(json_decode($response, true));

В результате создастся новая запись со статусом «опубликовано».

Обновление записи через REST API: пример с PHP

Для обновления записи нужно указать ее ID и отправить PATCH или POST запрос на эндпоинт /wp-json/wp/v2/posts/{id}.

$post_id = 123; // ID обновляемой записи
$post_data = [
    'title' => 'Обновленный заголовок через REST API',
    'content' => 'Новое содержимое записи.'
];

$ch = curl_init("https://wpmanual.ru/wp-json/wp/v2/posts/$post_id");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$app_password");

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

var_dump(json_decode($response, true));

Обратите внимание, что метод PUT полностью заменяет запись, а PATCH — частично обновляет. WordPress REST API поддерживает оба, но чаще используют PUT.

Использование плагинов для расширения REST API и удобной работы с записями

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

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

Эти плагины упрощают интеграцию и позволяют более гибко управлять данными.

Советы и лучшие практики при работе с REST API в WordPress

При работе с REST API важно соблюдать несколько правил:

  • Всегда используйте безопасные методы аутентификации (Application Passwords, OAuth, JWT).
  • Минимизируйте права пользователя, под которым выполняются запросы.
  • Проверяйте и валидируйте данные, которые отправляете и получаете.
  • Используйте кеширование для GET-запросов, чтобы снизить нагрузку на сервер.
  • Если нужно расширить стандартные эндпоинты, создавайте кастомные маршруты через register_rest_route.

Пример регистрации кастомного эндпоинта для создания записи с проверкой прав

add_action('rest_api_init', function () {
    register_rest_route('wpmanual/v1', '/create-post', [
        'methods' => 'POST',
        'callback' => 'wpmanual_create_post',
        'permission_callback' => function () {
            return current_user_can('edit_posts');
        }
    ]);
});

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

    $post_id = wp_insert_post([
        'post_title' => $title,
        'post_content' => $content,
        'post_status' => 'publish',
        'post_type' => 'post'
    ]);

    if (is_wp_error($post_id)) {
        return new WP_Error('post_creation_failed', 'Не удалось создать запись', ['status' => 500]);
    }

    return ['post_id' => $post_id, 'message' => 'Запись успешно создана'];
}

Такой подход позволяет контролировать процесс и добавлять бизнес-логику.

WooCommerce: как изменить шаблон письма при подтверждении заказа
12.05.2026
Как настроить автоматическое удаление спама в комментариях WordPress
01.01.2026
Как создать адаптивный блок с видео в WordPress с помощью OmniVideo
08.02.2026
Как использовать REST API для создания и обновления записей в WordPress
09.12.2025
WooCommerce не отображает товары после обновления: как быстро исправить
22.04.2026