Как создать автоматический импорт постов в WordPress

|

Автоматический импорт постов в WordPress — востребованная задача для сайтов новостной тематики, агрегаторов и блогов, которым нужно регулярно обновлять контент из внешних источников. В этой статье разберём, как организовать автоматический импорт постов, используя популярные плагины, а также рассмотрим пример кастомного решения на PHP с использованием встроенных функций WordPress.

Почему важен автоматический импорт постов

Ручное добавление большого объёма контента — трудоёмкий и затратный по времени процесс. Автоматизация позволяет:

Однако важно настроить импорт так, чтобы избежать дублирования, корректно обработать медиафайлы и сохранить структуру данных.

Популярные плагины для автоматического импорта постов в WordPress

1. WP All Import

Один из самых мощных инструментов для импорта данных из CSV и XML. Позволяет гибко настраивать сопоставления полей, загружать изображения, создавать любые типы записей, а также запускать импорт по расписанию.

Плюсы:
— Интуитивный интерфейс
— Возможность импорта больших объёмов данных
— Множество дополнений (WooCommerce, ACF и др.)

Минусы:
— Премиум-версия платная, но есть бесплатная с ограничениями

2. Feedzy RSS Feeds

Отличный плагин для импорта статей из RSS-лент. Поддерживает автообновление по расписанию, фильтры по ключевым словам, интеграцию с ACF и т.д.

Используется для новостных сайтов, агрегаторов и блогов.

3. WP RSS Aggregator

Простой и мощный плагин для сбора контента из RSS-лент с возможностью импортировать статьи как записи WordPress. Имеет платные дополнения для расширения функционала.

Как настроить автоматический импорт с помощью WP All Import

Рассмотрим настройку на примере CSV-файла с постами.

  1. Установите и активируйте плагин WP All Import.
  2. Перейдите в раздел "All Import" > "New Import" и загрузите CSV или XML файл с данными.
  3. Выберите тип записи (например, "Посты").
  4. Настройте сопоставление полей файла с полями WordPress — заголовок, содержание, дата, категория.
  5. Если есть ссылки на изображения, настройте импорт медиафайлов.
  6. Задайте расписание для автоматического обновления импорта.
  7. Запустите импорт и проверьте результаты.

WP All Import позволяет запускать PHP-код для обработки данных перед импортом, что дает широкие возможности кастомизации.

Пример простого кастомного скрипта для импорта постов из JSON с использованием WP Cron

Если нужно сделать импорт из нестандартного источника без плагинов, можно написать собственное решение. Ниже пример функции для импорта постов из JSON с удалённого URL.

function wpzoom_import_posts_from_json() {
    $response = wp_remote_get('https://example.com/api/posts.json');
    if (is_wp_error($response)) {
        return;
    }
    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);
    if (empty($data) || !is_array($data)) {
        return;
    }

    foreach ($data as $item) {
        // Проверим, что пост с таким внешним ID ещё не импортирован
        $existing = get_posts(array(
            'meta_key' => 'wpzoom_external_id',
            'meta_value' => $item['id'],
            'post_type' => 'post',
            'post_status' => 'any',
            'numberposts' => 1
        ));
        if (!empty($existing)) {
            continue; // Уже импортирован
        }

        $post_id = wp_insert_post(array(
            'post_title' => sanitize_text_field($item['title']),
            'post_content' => wp_kses_post($item['content']),
            'post_status' => 'publish',
            'post_author' => 1,
            'post_date' => sanitize_text_field($item['date'])
        ));

        if (!is_wp_error($post_id)) {
            // Сохраняем внешний ID для предотвращения дублирования
            update_post_meta($post_id, 'wpzoom_external_id', sanitize_text_field($item['id']));

            // Если есть изображение, загружаем и прикрепляем
            if (!empty($item['image_url'])) {
                media_sideload_image($item['image_url'], $post_id, null, 'id');
            }
        }
    }
}

// Добавим задачу в WP Cron для запуска каждые 6 часов
if (!wp_next_scheduled('wpzoom_import_posts_cron')) {
    wp_schedule_event(time(), 'six_hours', 'wpzoom_import_posts_cron');
}
add_action('wpzoom_import_posts_cron', 'wpzoom_import_posts_from_json');

// Регистрируем интервал 6 часов
add_filter('cron_schedules', function($schedules) {
    $schedules['six_hours'] = array(
        'interval' => 21600,
        'display' => 'Every 6 Hours'
    );
    return $schedules;
});

Этот код можно добавить в файл functions.php вашей темы или создать отдельный плагин. Он загружает данные из JSON, проверяет наличие постов с таким же внешним ID, чтобы избежать дубликатов, импортирует новые записи и прикрепляет изображения.

Обработка медиафайлов при импорте

Очень важно правильно загружать изображения при автоматическом импорте, чтобы они корректно отображались в постах и не создавали нагрузку на сервер.

Функция media_sideload_image() упрощает загрузку изображений из внешних URL и привязку к постам. Она автоматически скачивает файл, помещает в библиотеку медиафайлов и создаёт необходимые размеры.

Если нужно получить ID загруженного изображения для дальнейшей работы, используйте так:

function wpzoom_sideload_image_get_id($file_url, $post_id) {
    require_once(ABSPATH . 'wp-admin/includes/media.php');
    require_once(ABSPATH . 'wp-admin/includes/file.php');
    require_once(ABSPATH . 'wp-admin/includes/image.php');

    $tmp = download_url($file_url);
    if (is_wp_error($tmp)) {
        return 0;
    }

    $file = array(
        'name' => basename($file_url),
        'tmp_name' => $tmp
    );

    $id = media_handle_sideload($file, $post_id);

    if (is_wp_error($id)) {
        @unlink($tmp);
        return 0;
    }

    return $id;
}

Советы по предотвращению проблем при автоматическом импорте

Интеграция с плагинами WPShop

Для сайтов на базе WPShop можно использовать плагин Clearfy Pro для оптимизации производительности при больших объёмах импортируемого контента, а также Expert Review для автоматического создания отзывов на основе импортируемых данных.

Эти инструменты помогут не только импортировать контент, но и сделать его максимально полезным и удобным для пользователей.

WooCommerce: автоматическое обновление остатков товаров при продаже
27.05.2026
Как удалить кэш в WordPress: практические способы и примеры
05.03.2026
WooCommerce: решение проблемы с неактивными кнопками корзины после обновления
19.06.2026
Создать собственный виджет WordPress: подробное руководство с примерами кода
08.11.2025
Как добавить настройки в админ-панель WordPress: пошаговое руководство с примерами кода
27.11.2025
×
WPShop
партнерка без «но»!

До 3225₽ за каждую продажу

Подключиться к игре