WordPress REST API — мощный инструмент для взаимодействия с сайтом через HTTP-запросы. Он позволяет создавать, читать, обновлять и удалять контент программно, что открывает широкие возможности для автоматизации и интеграции с внешними системами. В этой статье мы подробно разберём, как использовать REST API для автоматического управления контентом, рассмотрим примеры кода и лучшие практики.
Что такое REST API в WordPress и зачем он нужен
REST API — это интерфейс прикладного программирования, который реализован в WordPress с версии 4.7. Он позволяет выполнять операции над контентом сайта через HTTP-запросы в формате JSON. Основное преимущество — возможность управлять сайтом не через админ-панель, а программно, например, из внешних приложений или скриптов.
С помощью REST API можно:
- Создавать, редактировать и удалять записи и страницы;
- Управлять таксономиями (рубриками, метками);
- Работать с пользователями и комментариями;
- Интегрировать сайт с внешними сервисами, CRM, мобильными приложениями;
- Автоматизировать импорт и обновление данных.
Это особенно полезно для сайтов с большим количеством контента, где ручное управление неудобно.
Аутентификация для работы с REST API WordPress
Для выполнения операций, изменяющих данные (POST, PUT, DELETE), необходима аутентификация. Самый простой способ — использовать базовую аутентификацию с плагином Basic Auth с сайта wpshop.ru.
Установка:
- Скачайте и установите плагин Basic Auth;
- Активируйте его;
- Используйте в HTTP-запросах заголовок Authorization с базовой кодировкой логина и пароля.
Пример заголовка в PHP:
$headers = [
'Authorization' => 'Basic ' . base64_encode('username:password')
];Для более безопасной работы рекомендуется использовать OAuth или JWT, но они требуют дополнительной настройки.
Пример создания записи через REST API
Допустим, нужно автоматически создать новую запись типа post с заданным заголовком и содержимым. Вот пример на PHP с использованием базовой аутентификации:
function wpfinder_create_post_via_rest() {
$url = 'https://example.com/wp-json/wp/v2/posts';
$data = [
'title' => 'Автоматически созданная запись',
'content' => 'Содержание записи, созданной через REST API.',
'status' => 'publish'
];
$args = [
'headers' => [
'Authorization' => 'Basic ' . base64_encode('username:password'),
'Content-Type' => 'application/json',
],
'body' => json_encode($data),
'method' => 'POST',
];
$response = wp_remote_request($url, $args);
if (is_wp_error($response)) {
return 'Ошибка: ' . $response->get_error_message();
}
$body = json_decode(wp_remote_retrieve_body($response), true);
return $body;
}Этот код можно использовать в плагине или в любом PHP-скрипте с доступом к WordPress.
Как обновить запись через REST API
Для обновления записи необходимо отправить PATCH или POST запрос на эндпоинт вида /wp-json/wp/v2/posts/{ID}. Пример кода:
function wpfinder_update_post_via_rest($post_id) {
$url = 'https://example.com/wp-json/wp/v2/posts/' . $post_id;
$data = [
'title' => 'Обновлённый заголовок записи',
'content' => 'Обновлённое содержание записи.'
];
$args = [
'headers' => [
'Authorization' => 'Basic ' . base64_encode('username:password'),
'Content-Type' => 'application/json',
],
'body' => json_encode($data),
'method' => 'POST',
];
$response = wp_remote_request($url, $args);
if (is_wp_error($response)) {
return 'Ошибка: ' . $response->get_error_message();
}
return json_decode(wp_remote_retrieve_body($response), true);
}Обратите внимание, что в REST API WordPress метод PATCH часто заменяется POST с теми же данными.
Удаление записи через REST API
Удаление записи возможно через DELETE-запрос по адресу /wp-json/wp/v2/posts/{ID}. Важно добавить параметр ?force=true, иначе запись будет перемещена в корзину, а не удалена навсегда.
function wpfinder_delete_post_via_rest($post_id) {
$url = 'https://example.com/wp-json/wp/v2/posts/' . $post_id . '?force=true';
$args = [
'headers' => [
'Authorization' => 'Basic ' . base64_encode('username:password'),
],
'method' => 'DELETE',
];
$response = wp_remote_request($url, $args);
if (is_wp_error($response)) {
return 'Ошибка: ' . $response->get_error_message();
}
return json_decode(wp_remote_retrieve_body($response), true);
}Автоматизация импорта контента с использованием REST API и плагина WPRemark
Для автоматического импорта и обновления отзывов или комментариев можно использовать плагин WPRemark. Он поддерживает интеграцию через REST API и позволяет настроить автоматический импорт с внешних сайтов или CRM.
Пример настройки: создайте пользовательский скрипт, который получает данные из внешнего источника, формирует JSON и отправляет POST запросы на эндпоинт /wp-json/wp/v2/comments. WPRemark автоматически обработает и выведет отзывы на сайте.
Рекомендации по безопасности при работе с REST API
Работа с REST API подразумевает доступ к важным частям сайта, поэтому нужно учитывать безопасность:
- Используйте HTTPS для всех запросов;
- Не передавайте логин и пароль в открытом виде — используйте токены или OAuth;
- Ограничьте права пользователя, под которым выполняются запросы, строго необходимыми;
- Проверяйте и фильтруйте входящие данные;
- Регулярно обновляйте WordPress и плагины.
Выводы и перспективы использования REST API в WordPress
REST API открывает перед разработчиками WordPress огромные возможности для автоматизации и интеграции. С его помощью можно создавать сложные процессы импорта, обновления и удаления контента, интегрировать сайт с внешними сервисами и мобильными приложениями.
Если вы хотите упростить рутинные задачи и сделать управление сайтом более гибким, настоятельно рекомендуем освоить работу с REST API и использовать плагины, такие как WPRemark или Basic Auth для удобства аутентификации.