Яндекс.Дзен — популярная платформа для публикации контента, которая позволяет авторам набирать аудиторию. Часто возникает задача переноса или дублирования статей с Дзена на собственный сайт на WordPress для увеличения охвата и контроля над контентом. В этой статье мы рассмотрим, как организовать автоматический импорт материалов из Яндекс.Дзен в WordPress с возможностью подтверждения публикации. Такой подход позволяет избежать автоматического размещения неотредактированных или нежелательных материалов.
Почему важен импорт с подтверждением публикации
Автоматический импорт без фильтрации может привести к публикации черновиков, устаревшего или неподходящего контента. Подтверждение публикации гарантирует, что редактор сайта сам проверит и одобрит материал перед выходом, что важно для поддержания качества и уникальности контента.
Кроме того, Яндекс.Дзен не предоставляет официального API для прямого экспорта статей, поэтому нам потребуется использовать RSS-ленту канала и на её основе строить импорт.
Подготовка: получение RSS-ленты Яндекс.Дзен
Каждый канал в Яндекс.Дзен имеет RSS-ленту, доступную по адресу https://zen.yandex.ru/media/[имя_канала]?feed=1. Для начала работы возьмите URL своей RSS-ленты.
Например, если ваш канал называется wpdesk, ссылка будет https://zen.yandex.ru/media/wpdesk?feed=1.
Эту ссылку мы будем использовать для регулярного получения новых материалов.
Способы реализации импорта
Есть несколько вариантов реализации импорта статей из RSS в WordPress с подтверждением:
- Использовать готовые RSS-импортёры с возможностью сохранения материалов в черновики
- Создать собственный плагин или скрипт, который парсит RSS и сохраняет посты в статусе
draft
Использование плагина WP RSS Aggregator
Плагин WP RSS Aggregator позволяет импортировать элементы RSS в записи WordPress. В настройках плагина можно задать, чтобы новые записи создавались в статусе черновика. Это удобно для последующей ручной проверки и редактирования.
Преимущества:
- Простая настройка без программирования
- Поддержка нескольких RSS-лент
- Возможность фильтрации по ключевым словам и источникам
Создание собственного решения на PHP
Если вы хотите контролировать процесс и кастомизировать поведение импорта, можно написать свой код для парсинга RSS и сохранения постов. Ниже пример функции, которая получает RSS, парсит новые записи и создаёт записи в WordPress в статусе draft.
function wpdesk_import_yandex_dzen_rss() {
$rss_url = 'https://zen.yandex.ru/media/wpdesk?feed=1';
$response = wp_remote_get($rss_url);
if (is_wp_error($response)) {
return;
}
$rss_body = wp_remote_retrieve_body($response);
if (empty($rss_body)) {
return;
}
$rss = simplexml_load_string($rss_body);
if (!$rss) {
return;
}
foreach ($rss->channel->item as $item) {
$title = (string) $item->title;
$link = (string) $item->link;
$content = (string) $item->children('content', true)->encoded;
// Проверяем, есть ли уже такой пост по ссылке
$existing = new WP_Query([
'post_type' => 'post',
'meta_key' => 'wpdesk_dzen_link',
'meta_value' => $link,
'post_status' => ['publish', 'draft']
]);
if ($existing->have_posts()) {
continue; // Уже импортировано
}
// Создаём черновик
$post_id = wp_insert_post([
'post_title' => $title,
'post_content' => $content,
'post_status' => 'draft',
'post_type' => 'post'
]);
if ($post_id) {
// Сохраняем ссылку на источник
update_post_meta($post_id, 'wpdesk_dzen_link', $link);
}
}
}
// Для запуска функции можно использовать wp_cron или вызвать вручную
// add_action('wp_loaded', 'wpdesk_import_yandex_dzen_rss');
Этот код проверяет наличие материала с таким же URL в метаполе, чтобы избежать дублирования, и создаёт новые записи в статусе черновика для последующего редактирования.
Автоматизация запуска импорта через планировщик задач WP-Cron
Чтобы импорт выполнялся регулярно, используйте WP-Cron. В файле плагина или в functions.php темы добавьте расписание и вызов:
function wpdesk_schedule_dzen_import() {
if (!wp_next_scheduled('wpdesk_dzen_import_event')) {
wp_schedule_event(time(), 'hourly', 'wpdesk_dzen_import_event');
}
}
add_action('wp', 'wpdesk_schedule_dzen_import');
add_action('wpdesk_dzen_import_event', 'wpdesk_import_yandex_dzen_rss');
Так импорт будет запускаться каждый час, вы можете изменить интервал в соответствии с потребностями.
Рекомендации по доработке и безопасности
При использовании сторонних RSS-лент рекомендуется:
- Проверять и фильтровать содержимое, чтобы избежать XSS-уязвимостей
- Оптимизировать код для работы с большим числом записей
- Добавить логи и уведомления об ошибках
- Использовать nonce и проверки прав, если добавлять интерфейс для управления импортом
Заключение и полезные инструменты
Автоматический импорт из Яндекс.Дзен с подтверждением публикации позволяет эффективно поддерживать сайт WordPress свежим контентом и сохранять контроль качества. Выбор между готовым плагином и собственным решением зависит от уровня навыков и требований проекта.
Для удобства редактирования и модерации советуем рассмотреть интеграцию с плагином Expert Review, который поможет организовать процесс проверки и оценки импортированных материалов.