REST API WordPress — это мощный инструмент, который позволяет разработчикам взаимодействовать с сайтом на WordPress через HTTP-запросы. Это открывает широкие возможности для автоматизации рутинных задач, интеграции с внешними сервисами и создания кастомных приложений.
Что такое REST API в WordPress и как он работает
REST API (Representational State Transfer Application Programming Interface) — это архитектурный стиль, который позволяет обращаться к данным сайта через URL-адреса и стандартные методы HTTP: GET, POST, PUT, DELETE.
В WordPress REST API встроен из коробки, начиная с версии 4.7. Он предоставляет доступ к постам, страницам, пользователям, комментариям и даже позволяет создавать собственные REST эндпоинты.
Для примера, получить список последних постов можно с помощью запроса:
GET https://ваш-сайт.ru/wp-json/wp/v2/postsОтвет приходит в формате JSON, что удобно для обработки в любых приложениях.
Практическое применение REST API для автоматизации задач
Автоматическое создание постов из внешних источников
Допустим, у вас есть источник новостей или база данных, и вы хотите регулярно публиковать новые материалы на сайте без ручного копирования. С помощью REST API вы можете написать скрипт, который будет отправлять POST-запросы для создания новых записей.
function wpmax_create_post_via_rest($title, $content, $token) {
$url = 'https://ваш-сайт.ru/wp-json/wp/v2/posts';
$data = [
'title' => $title,
'content' => $content,
'status' => 'publish'
];
$args = [
'headers' => [
'Authorization' => 'Bearer ' . $token,
'Content-Type' => 'application/json'
],
'body' => json_encode($data),
'method' => 'POST'
];
$response = wp_remote_request($url, $args);
return json_decode(wp_remote_retrieve_body($response), true);
}Здесь $token — это JWT-токен для аутентификации, который можно получить через плагин JWT Authentication for WP REST API.
Обновление контента и метаданных
REST API также позволяет обновлять существующие записи. Например, для изменения заголовка и добавления мета-поля:
function wpmax_update_post_meta($post_id, $new_title, $meta_key, $meta_value, $token) {
$url = 'https://ваш-сайт.ru/wp-json/wp/v2/posts/' . $post_id;
$data = [
'title' => $new_title,
'meta' => [
$meta_key => $meta_value
]
];
$args = [
'headers' => [
'Authorization' => 'Bearer ' . $token,
'Content-Type' => 'application/json'
],
'body' => json_encode($data),
'method' => 'POST'
];
$response = wp_remote_request($url, $args);
return json_decode(wp_remote_retrieve_body($response), true);
}Важно, чтобы мета-поля были зарегистрированы через функцию register_meta с параметром show_in_rest => true, чтобы они стали доступны в REST API.
Создание собственных REST API эндпоинтов в WordPress
Если стандартных эндпоинтов недостаточно, можно добавить свои. Это полезно для реализации бизнес-логики или работы с нестандартными данными.
Пример создания кастомного эндпоинта, который возвращает список последних 5 пользователей с определенной ролью:
add_action('rest_api_init', function () {
register_rest_route('wpmax/v1', '/users/', [
'methods' => 'GET',
'callback' => 'wpmax_get_users',
'permission_callback' => function () {
return current_user_can('list_users');
}
]);
});
function wpmax_get_users(WP_REST_Request $request) {
$args = [
'role' => 'subscriber',
'number' => 5
];
$users = get_users($args);
$data = [];
foreach ($users as $user) {
$data[] = [
'ID' => $user->ID,
'login' => $user->user_login,
'email' => $user->user_email
];
}
return rest_ensure_response($data);
}После добавления этого кода запрос GET https://ваш-сайт.ru/wp-json/wpmax/v1/users/ вернет JSON с информацией о пользователях.
Популярные плагины для работы с REST API WordPress
Для удобства и расширения возможностей используйте проверенные плагины:
- JWT Authentication for WP REST API — добавляет поддержку JWT-токенов для безопасной аутентификации;
- Advanced Custom Fields (ACF) — позволяет создавать и регистрировать мета-поля, доступные в REST API;
- WP REST API Controller — визуальный редактор, который помогает управлять видимостью и доступом эндпоинтов;
- WP Crontrol — для автоматизации запуска задач, которые могут обращаться к REST API по расписанию.
Советы по безопасности при работе с REST API
REST API открывает сайт для внешних запросов, поэтому важно правильно настроить права доступа:
- Используйте аутентификацию (например, с помощью JWT или OAuth);
- Ограничивайте доступ к чувствительным эндпоинтам через
permission_callback; - Проверяйте и валидируйте входящие данные на стороне сервера;
- Не раскрывайте лишнюю информацию в ответах API.
Подводя итог, использование REST API WordPress значительно расширяет возможности сайта, позволяя автоматизировать создание и обновление контента, интегрироваться с внешними сервисами и создавать собственные приложения. Главное — уделить внимание безопасности и правильно оформлять запросы.