evgeniya29 13.01.2023 17:50

Как настроить автоматическое обновление контента с помощью RSS-лент и плагина WP RSS Aggregator в Wordpress?

Здравствуйте! Мне нужна помощь в настройке автоматического обновления контента на моем сайте WordPress с помощью RSS-лент и плагина WP RSS Aggregator. Я хотел бы, чтобы новости с определенных сайтов автоматически появлялись на моем сайте в виде постов.

У меня уже установлен и активирован плагин WP RSS Aggregator, и я настроил загрузку RSS-лент с нужных мне сайтов. Однако, я не знаю, как правильно использовать полученные данные и создать новые посты на основе этой информации.

Можете ли вы подсказать мне, как написать код, который будет автоматически создавать посты на основе RSS-лент? Я предполагаю, что нужно использовать функции и хуки WordPress, но я не уверен, как их правильно применить.


// Пример кода, который требует помощи
function create_post_from_rss() {
    // Получение данных из RSS-ленты
    $feed = fetch_feed( 'http://example.com/feed' );
    
    if ( ! is_wp_error( $feed ) ) {
        // Парсинг данных
        $items = $feed->get_items();
        
        foreach ( $items as $item ) {
            // Создание нового поста
            $new_post = array(
                'post_title'   => $item->get_title(),
                'post_content' => $item->get_content(),
                'post_status'  => 'publish',
                'post_author'  => 1,
                'post_category' => array( 4 )
            );
            
            $post_id = wp_insert_post( $new_post );
            
            if ( ! is_wp_error( $post_id ) ) {
                // Добавление мета данных поста, например, изображения
                $image_url = $item->get_enclosure()->get_link();
                update_post_meta( $post_id, 'image_url', $image_url );
            }
        }
    }
}

// Запуск функции при каждом обновлении страницы
add_action( 'init', 'create_post_from_rss' );

Буду очень благодарен, если кто-то сможет помочь мне разобраться с этой задачей. Заранее спасибо!

Ответы:

yanGrig29 13.01.2023 18:12
Рекомендую изучить документацию плагина WP RSS Aggregator и официальную документацию WordPress для лучшего понимания работы с RSS-лентами.
olygaantonova42 13.01.2023 18:25

Я рад помочь тебе с настройкой автоматического обновления контента на твоем сайте WordPress с помощью RSS-лент и плагина WP RSS Aggregator.

Для автоматического создания постов на основе RSS-ленты мы можем использовать функции и хуки WordPress. Вот пример кода, который поможет тебе достичь этой цели:


// Пример кода, который требует помощи
function create_post_from_rss() {
    // Получение данных из RSS-ленты
    $feed = fetch_feed( 'http://example.com/feed' );
    
    if ( ! is_wp_error( $feed ) ) {
        // Парсинг данных
        $items = $feed->get_items();
        
        foreach ( $items as $item ) {
            // Создание нового поста
            $new_post = array(
                'post_title'   => $item->get_title(),
                'post_content' => $item->get_content(),
                'post_status'  => 'publish',
                'post_author'  => 1,
                'post_category' => array( 4 )
            );
            
            $post_id = wp_insert_post( $new_post );
            
            if ( ! is_wp_error( $post_id ) ) {
                // Добавление мета данных поста, например, изображения
                $image_url = $item->get_enclosure()->get_link();
                update_post_meta( $post_id, 'image_url', $image_url );
            }
        }
    }
}

// Запуск функции при каждом обновлении страницы
add_action( 'init', 'create_post_from_rss' );

В этом примере мы создаем функцию "create_post_from_rss", которая будет вызываться при каждом обновлении страницы благодаря хуку "init". Внутри этой функции мы получаем данные из RSS-ленты с помощью функции "fetch_feed" и затем парсим эти данные для создания новых постов.

В цикле "foreach" мы проходимся по каждому элементу из RSS-ленты и создаем новый пост с помощью функции "wp_insert_post". Здесь мы указываем заголовок и содержимое поста из данных RSS-ленты, а также устанавливаем статус поста как "publish" и автора поста с ID 1. Также мы можем установить категорию поста, указав ее ID в массиве "post_category".

Если создание поста прошло успешно, мы можем добавить мета данные к посту, например, изображение. В примере мы получаем URL изображения через функцию "get_enclosure" и сохраняем его в мета поле "image_url" с помощью функции "update_post_meta".

Таким образом, каждый раз при обновлении страницы будет выполняться функция "create_post_from_rss", которая получает данные из RSS-ленты и создает новые посты на основе этих данных.

Надеюсь, этот пример кода поможет тебе настроить автоматическое обновление контента на твоем сайте WordPress с помощью RSS-лент и плагина WP RSS Aggregator. Если у тебя возникнут дополнительные вопросы, не стесняйся задавать их!


Добавить ответ