WP REST API — мощный инструмент, который дает возможность взаимодействовать с сайтом WordPress извне через HTTP-запросы. Это открывает широкие возможности для автоматизации управления контентом, включая создание, обновление и удаление постов без необходимости заходить в админ-панель.
Что такое WP REST API и зачем он нужен для автоматизации
WP REST API — это интерфейс программирования приложений, встроенный в ядро WordPress, который позволяет работать с данными сайта через стандартные HTTP-методы: GET, POST, PUT, DELETE. Это особенно полезно, если нужно интегрировать WordPress с внешними системами, мобильными приложениями или создавать сложные автоматизации.
Использование REST API позволяет:
- Автоматически публиковать контент из внешних источников;
- Обновлять и редактировать существующие посты или страницы;
- Удалять устаревший контент по заданным критериям;
- Интегрировать WordPress с CRM, ERP и другими сервисами.
Для автоматизации управления постами REST API является универсальным решением, минимизирующим ручной труд и риск ошибок.
Основные эндпоинты для работы с постами
В WordPress REST API для работы с типом записи post используются следующие основные маршруты:
- GET
/wp-json/wp/v2/posts— получить список постов; - GET
/wp-json/wp/v2/posts/{id}— получить конкретный пост по ID; - POST
/wp-json/wp/v2/posts— создать новый пост; - PUT/PATCH
/wp-json/wp/v2/posts/{id}— обновить пост; - DELETE
/wp-json/wp/v2/posts/{id}— удалить пост.
Все действия кроме GET требуют аутентификации, чтобы не допустить несанкционированного доступа.
Пример: Автоматическое создание поста через WP REST API
Рассмотрим пример отправки POST-запроса для создания нового поста с помощью PHP и библиотеки Guzzle:
use GuzzleHttp\Client;
function wpdetect_create_post_via_rest($title, $content, $token) {
$client = new Client(['base_uri' => 'https://ваш-сайт.ru']);
$response = $client->post('/wp-json/wp/v2/posts', [
'headers' => [
'Authorization' => 'Bearer ' . $token,
'Content-Type' => 'application/json'
],
'json' => [
'title' => $title,
'content' => $content,
'status' => 'publish'
]
]);
return json_decode($response->getBody(), true);
}
В этом примере используется токен доступа для аутентификации. Он может быть получен через OAuth или JWT-плагины.
Обновление поста через REST API
Чтобы обновить пост, используйте метод PUT или PATCH с ID записи. Пример обновления статуса и контента:
function wpdetect_update_post_via_rest($post_id, $new_content, $token) {
$client = new Client(['base_uri' => 'https://ваш-сайт.ru']);
$response = $client->put("/wp-json/wp/v2/posts/{$post_id}", [
'headers' => [
'Authorization' => 'Bearer ' . $token,
'Content-Type' => 'application/json'
],
'json' => [
'content' => $new_content,
'status' => 'publish'
]
]);
return json_decode($response->getBody(), true);
}
Это удобно, когда контент меняется регулярно и нужно автоматизировать обновления из внешних систем.
Удаление постов по условию с помощью WP REST API
Для автоматизации удаления старых или неактуальных постов можно сначала получить список постов с нужным фильтром, а затем отправить DELETE-запросы по их ID.
Пример получения постов старше определенной даты:
function wpdetect_get_old_posts($before_date, $token) {
$client = new Client(['base_uri' => 'https://ваш-сайт.ru']);
$response = $client->get('/wp-json/wp/v2/posts', [
'headers' => [
'Authorization' => 'Bearer ' . $token
],
'query' => [
'before' => $before_date,
'per_page' => 100
]
]);
return json_decode($response->getBody(), true);
}
Удаление поста по ID:
function wpdetect_delete_post($post_id, $token) {
$client = new Client(['base_uri' => 'https://ваш-сайт.ru']);
$response = $client->delete("/wp-json/wp/v2/posts/{$post_id}?force=true", [
'headers' => [
'Authorization' => 'Bearer ' . $token
]
]);
return json_decode($response->getBody(), true);
}
Сочетая эти функции, можно написать скрипт, который регулярно удаляет устаревшие посты, освобождая место и поддерживая актуальность сайта.
Безопасность и аутентификация при работе с REST API
Для защиты REST API от несанкционированного доступа рекомендуется использовать один из методов аутентификации:
- JWT (JSON Web Token) — популярный метод, доступный через плагины, например WP JWT Auth;
- OAuth 2.0 — более сложный, но стандартизированный протокол;
- Basic Auth — простой, но менее безопасный, подходит для внутренних систем.
Не рекомендуется открывать REST API без аутентификации, особенно для операций изменения данных.
Использование плагинов для упрощения работы с REST API
Для расширения возможностей REST API можно использовать специализированные плагины:
- Clearfy Pro — оптимизация и расширение API, улучшение безопасности;
- WPDetect — мониторинг и автоматизация задач, включая работу с API;
- WP-CLI — командная строка для администрирования, может взаимодействовать с API.
Эти инструменты помогут сделать автоматизацию более надежной и удобной.
Практические советы по работе с WP REST API
При разработке автоматизаций учитывайте следующие моменты:
- Обрабатывайте ошибки и исключения, чтобы скрипт не прерывался неожиданно;
- Используйте пагинацию при запросах большого количества постов, чтобы избежать перегрузки сервера;
- Кэшируйте ответы, если данные не меняются часто, для повышения производительности;
- Логируйте действия автоматизации для последующего анализа и отладки;
- Регулярно обновляйте используемые библиотеки и плагины для безопасности.
Заключение
WP REST API — это гибкий и мощный инструмент для создания автоматизированных процессов управления контентом WordPress. Используя его возможности, вы сможете значительно упростить рутинные задачи, повысить эффективность работы сайта и интегрировать WordPress с любыми внешними системами.
Если хотите быстро реализовать некоторые из описанных функций, обратите внимание на плагин WPDetect, который предоставляет удобные инструменты для автоматизации и мониторинга.