Автоматизация импорта контента из внешних источников — частая задача для владельцев WordPress-сайтов. Особенно полезно, когда нужно регулярно обновлять блог новыми статьями из RSS-лент, API или других систем. В этой статье подробно разберём, как создать простой, но гибкий механизм автоматического импорта постов с применением фильтров, чтобы не загружать сайт ненужным контентом.
Почему стоит использовать фильтры при импорте постов
Импорт без фильтрации часто приводит к появлению спама, дублированных или нерелевантных записей на сайте. Это влияет на качество контента и SEO. Фильтры позволяют отсеять посты по ключевым словам, дате, автору и другим параметрам, оставляя только полезный материал.
Например, если вы импортируете новости с нескольких источников, можно отбирать только статьи по нужной тематике или с определённым минимальным рейтингом.
Рассмотрим практический пример с импортом из RSS-ленты, где мы добавим фильтрацию по ключевым словам в заголовке и дате публикации.
Выбор плагина для импорта с возможностью кастомизации
Существует множество плагинов для импорта контента, но для гибкости лучше использовать плагин с возможностью добавления собственного кода. Хороший вариант — плагин WP All Import (https://wpshop.ru/wp-all-import/?utm_source=wp-blog.ru&utm_medium=article&utm_campaign=kak-sozdat-avtomaticheskiy-import-postov-iz-vneshnego-istochnika-s-filtrami). Он позволяет настроить импорт из XML или CSV и добавлять фильтры через PHP.
Однако для полного контроля часто пишут свой скрипт. Ниже пример такого решения.
Пример кода: импорт из RSS с фильтрами
function wpblog_import_rss_with_filters($rss_url) {
$rss = simplexml_load_file($rss_url);
if (!$rss) return;
foreach ($rss->channel->item as $item) {
$title = (string) $item->title;
$pubDate = strtotime((string) $item->pubDate);
$content = (string) $item->description;
// Фильтр 1: пропускаем статьи, где нет ключевого слова "WordPress"
if (stripos($title, 'WordPress') === false) continue;
// Фильтр 2: пропускаем статьи старше 30 дней
if ($pubDate < strtotime('-30 days')) continue;
// Проверяем, существует ли уже пост с таким заголовком
$existing = get_page_by_title($title, OBJECT, 'post');
if ($existing) continue;
// Создаем новый пост
$post_data = array(
'post_title' => $title,
'post_content' => $content,
'post_status' => 'publish',
'post_author' => 1,
'post_date' => date('Y-m-d H:i:s', $pubDate),
);
wp_insert_post($post_data);
}
}
// Запуск импорта
wpblog_import_rss_with_filters('https://example.com/feed');
Этот код загружает RSS-ленту, проверяет каждую статью на наличие слова «WordPress» в заголовке, фильтрует по дате и не допускает дублирование. Такой подход можно расширять и изменять под свои нужды.
Настройка регулярного запуска импорта через WP Cron
Чтобы импорт выполнялся автоматически, полезно добавить запуск функции по расписанию с помощью WP Cron. Это позволит обновлять контент, например, ежедневно.
function wpblog_schedule_rss_import() {
if (!wp_next_scheduled('wpblog_rss_import_event')) {
wp_schedule_event(time(), 'daily', 'wpblog_rss_import_event');
}
}
add_action('wp', 'wpblog_schedule_rss_import');
add_action('wpblog_rss_import_event', function() {
wpblog_import_rss_with_filters('https://example.com/feed');
});
Такой код активирует ежедневный запуск импорта. При необходимости можно менять периодичность и URL фида.
Как избежать типичных ошибок при импорте постов
Импорт контента — задача со своими подводными камнями. Вот основные рекомендации, которые помогут избежать проблем:
- Проверяйте корректность источника. Лента должна поддерживать нужный формат и быть доступна для чтения.
- Обрабатывайте ошибки. Добавьте логирование успешных и неудачных попыток импорта, чтобы быстро находить сбои.
- Используйте фильтры. Отсеивайте нерелевантный контент, чтобы не засорять базу данных и сайт.
- Контролируйте дубли. Проверяйте, не импортирован ли уже пост с таким же заголовком или уникальным идентификатором.
- Тестируйте на копиях сайта. Перед запуском на рабочем сайте убедитесь, что импорт работает корректно.
Дополнительные возможности
Для более сложных случаев можно использовать WP REST API или плагины, которые предлагают расширенные настройки импорта с поддержкой пользовательских полей, таксономий, изображений и других данных.
Например, плагин Expert Review из каталога WPSHOP позволяет автоматически добавлять обзоры к импортируемым постам, если вы импортируете товары или статьи с оценками.
Итоги
Автоматический импорт постов с фильтрами — мощный инструмент для поддержания актуального контента на WordPress-сайте. Используйте примеры кода и плагины с возможностью гибкой настройки, чтобы реализовать именно тот функционал, который нужен вашему проекту.
Если хотите быстро внедрить решение, посмотрите плагин WPGPT, который помогает создавать и обновлять контент с помощью ИИ, комбинируя автоматический импорт и генерацию текстов.