Удаленная публикация постов в WordPress — востребованная задача для тех, кто управляет несколькими сайтами или интегрирует внешние сервисы с блогом. В этой статье разберем, как с помощью REST API автоматически создавать и публиковать записи удаленно, используя примеры кода и рекомендации по безопасности.
Что такое удаленная публикация постов и зачем она нужна
Удаленная публикация позволяет создавать записи на сайте WordPress с помощью внешних приложений или скриптов, не заходя в админку. Это актуально для:
- Автоматического импорта контента из других систем;
- Публикации материалов из CRM, ERP или других бизнес-приложений;
- Организации редакционных процессов с внешними редакторами;
- Интеграции с сервисами, например, WPGPT для генерации текста.
Такой подход экономит время, снижает количество ошибок и расширяет возможности управления сайтом.
Использование REST API WordPress для создания постов
WordPress начиная с версии 4.7 имеет встроенный REST API, который позволяет управлять контентом через HTTP-запросы. Для публикации поста используется эндпоинт /wp-json/wp/v2/posts.
Для начала нужно получить авторизационный токен. Обычно используется базовая авторизация или OAuth, но для простоты часто применяют JWT (JSON Web Token). Ниже пример настройки JWT:
- Установите плагин JWT Authentication for WP REST API.
- Настройте .htaccess и functions.php согласно документации плагина.
После успешной авторизации можно отправлять POST-запросы для создания записей.
Пример кода на PHP для публикации поста удаленно
function wpbloger_create_post_remote($site_url, $token, $post_data) {
$url = rtrim($site_url, '/') . '/wp-json/wp/v2/posts';
$args = array(
'headers' => array(
'Authorization' => 'Bearer ' . $token,
'Content-Type' => 'application/json',
),
'body' => json_encode($post_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);
}
// Пример использования
$post_data = array(
'title' => 'Тестовая публикация',
'content' => 'Содержимое публикации',
'status' => 'publish'
);
$site_url = 'https://example.com';
$token = 'ваш_jwt_токен';
$result = wpbloger_create_post_remote($site_url, $token, $post_data);
print_r($result);Как обезопасить удаленную публикацию постов
При открытом REST API важно ограничить доступ, чтобы посторонние не могли публиковать на вашем сайте. Вот основные рекомендации:
- Используйте JWT или OAuth для авторизации;
- Ограничьте права пользователя, под которым происходит публикация (рекомендуется роль «Автор» или кастомная с минимальными правами);
- Настройте SSL (https) для защищенного соединения;
- Логируйте все запросы для аудита;
- Используйте плагины безопасности, например Clearfy Pro, для контроля доступа к REST API.
Автоматизация публикации с помощью плагинов и скриптов
Для удобства настройки автоматической публикации можно использовать готовые решения:
- WP All Import — импортирует данные из XML, CSV с последующей публикацией;
- WPGPT — автоматическая генерация контента с публикацией через REST API;
- Custom PHP скрипты — интеграция с внешними сервисами, как показано в примере выше.
Если вы хотите интегрировать удаленную публикацию с WPGPT, это позволит автоматически генерировать и публиковать статьи, экономя время на создание контента.
Пример расширения функции для публикации с метаданными
function wpbloger_create_post_with_meta($site_url, $token, $post_data, $meta) {
$post_data['meta'] = $meta;
return wpbloger_create_post_remote($site_url, $token, $post_data);
}
// Использование
$meta = array(
'_custom_field' => 'Значение',
);
$post_data = array(
'title' => 'Публикация с метаданными',
'content' => 'Контент с дополнительными данными',
'status' => 'publish'
);
$result = wpbloger_create_post_with_meta($site_url, $token, $post_data, $meta);
print_r($result);Отладка и мониторинг удаленных публикаций
Во время разработки важно отслеживать корректность запросов и получать подробные ошибки. Используйте следующие советы:
- Включите WP_DEBUG и WP_DEBUG_LOG в
wp-config.php; - Проверяйте ответы сервера — статус HTTP и тело ответа;
- Логируйте запросы и ответы для анализа проблем;
- Используйте инструменты типа Postman для тестирования REST API вручную.
Так вы сможете быстро находить и исправлять ошибки, а также контролировать процесс публикации.
Заключение
Удаленная публикация постов через REST API — мощный инструмент для автоматизации работы с WordPress. Правильная настройка авторизации, контроль доступа и использование готовых плагинов значительно упрощают этот процесс. Используйте приведенные примеры и рекомендации, чтобы настроить надежную и эффективную систему автоматической публикации контента.