Автоматизация импорта постов в WordPress из внешних источников — частая задача для сайтов, которые агрегируют контент, новостных порталов или корпоративных блогов. В этой статье мы подробно разберём, как настроить такой импорт с помощью плагинов и кода, чтобы регулярно получать свежие публикации без ручного вмешательства.
Почему важно настроить автоматический импорт постов
Ручной ввод контента занимает много времени и неэффективен, особенно если источников много или контент обновляется часто. Автоматический импорт позволит:
- Экономить время редакторов;
- Обеспечить свежесть и актуальность контента на сайте;
- Получать структурированные данные с нужными метаполями;
- Минимизировать ошибки при переносе информации.
Основные способы импорта — через RSS ленты, API внешних сервисов или CSV/JSON файлы.
Использование плагина для импорта постов из RSS
Один из самых простых вариантов — плагин WP RSS Aggregator. Он позволяет импортировать посты из RSS лент и автоматически создавать записи в WordPress.
Пример настройки:
- Установите и активируйте плагин.
- Перейдите в раздел RSS Aggregator и добавьте новый источник — ссылку на RSS ленту.
- Настройте частоту обновления — например, каждые 30 минут.
- Выберите, чтобы импортированные элементы создавались как записи или кастомные посты.
Плагин поддерживает фильтрацию по ключевым словам, добавление категорий и тегов, что особенно полезно для структурирования контента.
Код для дополнительной обработки импортированных постов
Если нужно добавить кастомную логику, например, автоматическую установку произвольного поля или изменение статуса поста, можно использовать хук плагина.
add_action('wp_rss_aggregator_post_imported', 'wpkit_custom_process_imported_post', 10, 1);
function wpkit_custom_process_imported_post($post_id) {
// Добавляем метаполе source
update_post_meta($post_id, '_wpkit_source', 'external_rss');
// Меняем статус на черновик для проверки перед публикацией
wp_update_post(array(
'ID' => $post_id,
'post_status' => 'draft'
));
}
Импорт постов через REST API внешнего сервиса
Если источник поддерживает REST API, лучше настроить импорт именно через него. Это гибко и позволяет работать с полным набором данных.
Ниже пример функции для импорта постов из внешнего JSON API в WordPress с помощью WP Cron:
add_action('wpkit_cron_import_posts', 'wpkit_import_posts_from_api');
function wpkit_import_posts_from_api() {
$response = wp_remote_get('https://example.com/api/posts');
if (is_wp_error($response)) return;
$data = json_decode(wp_remote_retrieve_body($response), true);
if (empty($data)) return;
foreach ($data as $item) {
// Проверяем, есть ли уже такой пост по внешнему ID
$existing = new WP_Query(array(
'meta_key' => '_wpkit_external_id',
'meta_value' => $item['id'],
'post_type' => 'post'
));
if ($existing->have_posts()) 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
));
if ($post_id) {
update_post_meta($post_id, '_wpkit_external_id', $item['id']);
}
}
}
// Регистрируем крон-событие при активации плагина или темы
if (!wp_next_scheduled('wpkit_cron_import_posts')) {
wp_schedule_event(time(), 'hourly', 'wpkit_cron_import_posts');
}
В этом примере каждую минуту (или другой интервал) будет запускаться импорт новых записей, которые не были ранее добавлены.
Импорт из CSV файлов: пример с помощью плагина WP All Import
Для импорта большого количества данных из файлов CSV удобно использовать WP All Import. Он поддерживает импорт кастомных полей, таксономий и изображений.
Основные шаги:
- Загрузить CSV файл через интерфейс плагина;
- Настроить соответствие колонок CSV с полями WordPress;
- Запустить импорт — плагин создаст новые посты или обновит существующие по уникальному идентификатору.
Плагин позволяет автоматизировать процесс, импортировать изображения из URL и даже запускать импорт по расписанию.
Советы по безопасности и производительности при автоматическом импорте
Автоматизация импорта — мощный инструмент, но требует внимания к ресурсам и безопасности:
- Обязательно проверяйте и фильтруйте входящие данные, избегая XSS и SQL-инъекций;
- Используйте nonce и проверку прав при запуске импортных функций;
- Планируйте задачи WP Cron с разумным интервалом, чтобы не перегружать сервер;
- Следите за размером импортируемых данных — лучше разбивать на части;
- Логируйте результаты импорта, чтобы быстро выявлять ошибки.
Выводы и рекомендации
Автоматический импорт постов позволяет сделать сайт динамичным и актуальным без лишних затрат времени. Используйте готовые плагины, если нужна быстрая реализация, или пишите собственные решения на PHP для полной кастомизации.
Для начала рекомендую протестировать WP RSS Aggregator для RSS-источников, а для сложных интеграций — самостоятельно писать код с использованием WP Cron и REST API. Если работаете с таблицами и файлами — WP All Import будет отличным помощником.