wpcat.ru wordpress WPCat.ru

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

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

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

REST API — это набор конечных точек (endpoints), которые возвращают данные в формате JSON. Это современный стандарт взаимодействия между клиентом и сервером. В WordPress REST API позволяет создать полноценное приложение, мобильное или SPA, которое будет получать содержимое сайта и управлять им.

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

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

Основные возможности и примеры запросов

Для примера рассмотрим несколько базовых GET запросов, которые можно выполнить через браузер или инструменты типа Postman:

  • GET /wp-json/wp/v2/posts — получить список опубликованных записей;
  • GET /wp-json/wp/v2/pages — получить список страниц;
  • GET /wp-json/wp/v2/categories — получить категории;
  • GET /wp-json/wp/v2/posts/123 — получить конкретный пост с ID 123;

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

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://example.com/wp-json/wp/v2/posts');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$posts = json_decode($response, true);
print_r($posts);

Создание новой записи через REST API с авторизацией

Для создания записи через REST API нужна аутентификация, так как операция изменяет данные сайта. Наиболее распространённые методы — Basic Auth (только для разработки) и OAuth, JWT. Для простоты приведём пример с Basic Auth с использованием плагина Basic Auth от WPShop.

После установки и активации плагина можно отправлять POST запросы с авторизацией:

$data = [
    'title'   => 'Новая статья через REST API',
    'status'  => 'publish',
    'content' => 'Текст статьи, созданной программно через API'
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://example.com/wp-json/wp/v2/posts');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Basic ' . base64_encode('username:password')
]);
$response = curl_exec($ch);
curl_close($ch);
$new_post = json_decode($response, true);
print_r($new_post);

В ответ придёт JSON с данными созданного поста или ошибкой. Важно, чтобы пользователь, от имени которого идёт запрос, имел права на создание записей.

Настройка пользовательских конечных точек REST API

Иногда стандартных эндпоинтов WordPress недостаточно, и нужно создать свои, например, для специфичных данных или бизнес-логики. Это делается через register_rest_route.

Пример регистрации собственного endpoint, который возвращает список последних 5 записей с дополнительным полем:

add_action('rest_api_init', function () {
    register_rest_route('wpcat/v1', '/latest-posts', [
        'methods' => 'GET',
        'callback' => 'wpcat_get_latest_posts',
        'permission_callback' => '__return_true',
    ]);
});

function wpcat_get_latest_posts() {
    $args = [
        'numberposts' => 5,
        'post_status' => 'publish'
    ];
    $posts = get_posts($args);
    $data = [];
    foreach ($posts as $post) {
        $data[] = [
            'id' => $post->ID,
            'title' => $post->post_title,
            'date' => $post->post_date,
            'custom_field' => get_post_meta($post->ID, 'custom_field', true),
        ];
    }
    return rest_ensure_response($data);
}

Теперь запрос GET /wp-json/wpcat/v1/latest-posts вернёт нужные данные.

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

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

  • Basic Auth — добавляет простой способ авторизации для разработки;
  • Clearfy Pro — позволяет управлять REST API и отключать ненужные эндпоинты для повышения безопасности;
  • Expert Review — помогает анализировать производительность и безопасность API запросов.

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

REST API открывает мощные возможности, но и повышает риски, если не контролировать доступ и не фильтровать данные. Рекомендуется:

  • Отключать ненужные эндпоинты через фильтры или плагины типа Clearfy Pro;
  • Использовать защищённые методы авторизации, например, JWT или OAuth;
  • Валидация и санитизация данных на сервере при создании и обновлении записей;
  • Логирование и мониторинг запросов для обнаружения подозрительной активности.

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

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее