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. Изучив его возможности и особенности, можно значительно расширить функциональность сайта, автоматизировать процессы и создать интеграции с внешними системами.