Автоматический импорт статей из Яндекс.Дзен в WordPress с подтверждением публикации

Яндекс.Дзен — популярная платформа для публикации контента, которая позволяет авторам набирать аудиторию. Часто возникает задача переноса или дублирования статей с Дзена на собственный сайт на 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, который поможет организовать процесс проверки и оценки импортированных материалов.

Автоподстановка данных в формах WordPress: практическое руководство с примерами
11.04.2026
Автоматический импорт статей из Яндекс.Дзен в WordPress с подтверждением публикации
15.04.2026
Как создать автоматическое сохранение форм в WordPress с помощью AJAX
05.01.2026
Как изменить регистрацию пользователя WooCommerce с подтверждением по email
14.05.2026
Использование хука WooCommerce 'woocommerce_order_status_changed' для автоматизации
26.04.2026

Плагин службы технической поддержки для WordPress. Создание, просмотр и ответ на тикеты. Уведомление пользователей и другие функции.