WordPress REST API — мощный инструмент, позволяющий взаимодействовать с сайтом программно через HTTP-запросы. Это открывает большие возможности для автоматизации, интеграции с внешними сервисами и создания собственных приложений на основе вашего сайта.
Что такое REST API в WordPress и почему его стоит использовать
REST API (Representational State Transfer Application Programming Interface) — это стандарт взаимодействия с веб-сервисами через HTTP. В WordPress он позволяет получать, создавать, обновлять и удалять данные сайта в формате JSON. Это значит, что вы можете управлять контентом сайта вне админки, используя запросы с любого языка программирования.
API встроен в WordPress начиная с версии 4.7 и доступен «из коробки». Он покрывает все основные типы данных: посты, страницы, категории, пользователи, комментарии и многое другое. Также есть возможность расширять API, создавать свои собственные эндпоинты.
Использование REST API особенно полезно, если нужно:
- Создавать автоматические публикации из внешних источников.
- Интегрировать WordPress с CRM, ERP и другими системами.
- Разрабатывать мобильные приложения на базе данных сайта.
- Автоматизировать массовые операции с контентом.
Основные методы и примеры запросов к REST API WordPress
REST API работает через стандартные HTTP методы:
GET— получить данные.POST— создать новый объект.PUTилиPATCH— обновить существующий объект.DELETE— удалить объект.
Базовый URL API выглядит так:
https://example.com/wp-json/wp/v2/Например, чтобы получить список последних 5 постов, отправьте GET-запрос на:
https://example.com/wp-json/wp/v2/posts?per_page=5Ответ будет в JSON с информацией о постах. Чтобы создать новый пост, нужен аутентифицированный запрос POST с телом вида:
{
"title": "Заголовок нового поста",
"content": "Содержимое поста",
"status": "publish"
}<Для аутентификации обычно используют OAuth, JWT или cookie авторизацию, если запросы идут с фронтенда.
Как расширить REST API: создание собственного эндпоинта
Иногда нужно добавить в API свои данные или действия. Для этого в WordPress есть функция register_rest_route. Ниже пример, который добавляет эндпоинт /wpfix/v1/hello, возвращающий приветствие.
add_action('rest_api_init', 'wpfix_register_custom_routes');
function wpfix_register_custom_routes() {
register_rest_route('wpfix/v1', '/hello', array(
'methods' => 'GET',
'callback' => 'wpfix_hello_callback',
));
}
function wpfix_hello_callback() {
return array('message' => 'Привет от WPFix REST API!');
}После добавления этого кода в файл плагина или functions.php, вы сможете получить ответ по адресу https://example.com/wp-json/wpfix/v1/hello.
Пример автоматизации: создание постов из внешнего источника
Представим, что вам нужно автоматически создавать посты на сайте из данных, получаемых с другого сервера. Для этого можно написать PHP-скрипт, который отправляет POST-запрос к REST API WordPress с нужными параметрами.
function wpfix_create_post_via_api($title, $content) {
$url = 'https://example.com/wp-json/wp/v2/posts';
$data = array(
'title' => $title,
'content' => $content,
'status' => 'publish'
);
$args = array(
'headers' => array(
'Authorization' => 'Bearer ' . 'ВАШ_JWT_ТОКЕН',
'Content-Type' => 'application/json',
),
'body' => json_encode($data),
'method' => 'POST',
'data_format' => 'body'
);
$response = wp_remote_post($url, $args);
if (is_wp_error($response)) {
return false;
}
$body = wp_remote_retrieve_body($response);
return json_decode($body);
}В этом примере мы используем функцию wp_remote_post для отправки запроса. Не забудьте настроить аутентификацию (JWT или OAuth), чтобы сервер разрешил создание постов.
Полезные плагины для работы с REST API в WordPress
Для упрощения работы и расширения возможностей REST API можно использовать готовые плагины:
- JWT Authentication for WP REST API — добавляет поддержку JWT-токенов для безопасной аутентификации.
- WP REST API Controller — позволяет управлять доступом к стандартным эндпоинтам, отключать ненужные маршруты.
- Advanced Custom Fields to REST API — расширяет API, добавляя данные полей ACF в ответы.
- WP REST Cache — кэширует ответы API для повышения производительности.
Использование этих плагинов позволит гибко настраивать и защищать ваши API-запросы.
Советы по безопасности при работе с REST API WordPress
REST API открывает удалённый доступ к данным сайта, поэтому безопасность должна быть на первом месте. Вот основные рекомендации:
- Всегда используйте аутентификацию для операций создания, обновления и удаления данных.
- Ограничьте права пользователей, которые могут работать с API.
- Регулярно обновляйте WordPress и плагины для защиты от уязвимостей.
- Если нужно, отключайте публичный доступ к REST API или определённым маршрутам.
Также можно добавить проверку nonce или других токенов для дополнительной защиты.
Заключение: REST API как инструмент автоматизации на wpfix.ru
Использование REST API в WordPress открывает широкие возможности для автоматизации рутинных задач, интеграции с внешними сервисами и разработки кастомных решений. С помощью примеров кода и готовых плагинов вы сможете быстро настроить взаимодействие с сайтом и повысить эффективность работы.