wp-lessons.ru wordpress WP-Lessons

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

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

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

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

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

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

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

Настройка авторизации для создания постов через REST API

По умолчанию REST API требует аутентификации для операций записи. Самый простой способ — использовать Basic Auth или OAuth, но для большинства проектов рекомендуется применять JWT (JSON Web Token). Рассмотрим настройку JWT авторизации.

Установка плагина JWT Authentication

Для начала установите плагин JWT Authentication for WP REST API. Он добавит поддержку JWT в ваш сайт.

После установки добавьте в файл wp-config.php строку с секретным ключом:

define('JWT_AUTH_SECRET_KEY', 'wp_lessons_your_secret_key_here');

Где wp_lessons_your_secret_key_here — уникальная длинная строка для безопасности.

Получение токена

Чтобы получить токен, отправьте POST-запрос на /wp-json/jwt-auth/v1/token с параметрами:

{
  "username": "your_username",
  "password": "your_password"
}

В ответ придёт JSON с полем token, который нужно использовать в заголовке Authorization: Bearer your_token для дальнейших запросов.

Создание поста через REST API: пример запроса

Для создания записи отправьте POST-запрос на эндпоинт /wp-json/wp/v2/posts с заголовком авторизации и JSON-телом:

{
  "title": "Автоматически созданный пост",
  "content": "Это тестовый пост, созданный через REST API.",
  "status": "publish"
}

Пример PHP-кода с использованием cURL для создания поста:

$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL => 'https://wp-lessons.ru/wp-json/wp/v2/posts',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $token,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'title' => 'Автоматически созданный пост',
        'content' => 'Это тестовый пост, созданный через REST API.',
        'status' => 'publish',
    ]),
]);
$response = curl_exec($curl);
curl_close($curl);
$result = json_decode($response, true);
if(isset($result['id'])) {
    echo "Пост успешно создан, ID: " . $result['id'];
} else {
    echo "Ошибка создания поста";
}

Обработка ошибок и рекомендации по безопасности при работе с REST API

При работе с REST API важно корректно обрабатывать ошибки. Например, если токен просрочен или неверен, сервер вернёт 401 Unauthorized. В таких случаях нужно обновлять токен или предупреждать пользователя.

Рекомендуется ограничить доступ к REST API с помощью плагинов типа REST API Authentication или самостоятельно вести whitelist IP-адресов, чтобы защитить сайт от несанкционированных запросов.

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

Пример функции для проверки прав пользователя перед созданием поста

function wp_lessons_check_user_permission() {
    if (!is_user_logged_in()) {
        wp_send_json_error('Пользователь не авторизован', 401);
        exit;
    }
    if (!current_user_can('edit_posts')) {
        wp_send_json_error('Недостаточно прав для создания постов', 403);
        exit;
    }
}

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

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

  • WP REST API Controller — позволяет гибко настраивать, какие типы записей и поля доступны через API.
  • Advanced Custom Fields (ACF) to REST API — добавляет поддержку произвольных полей ACF в REST API.
  • REST API Toolbox — помогает создавать собственные эндпоинты и настраивать права доступа.

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

Заключение

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