0

function c2_insert_posts_from_feed($atts) {
    // Default attributes
    $atts = shortcode_atts(array(
        'rss_url' => 'Feed_URL',
        'post_type' => 'post', // Change this to your custom post type slug
    ), $atts, 'fetch_posts_from_feed');
     // Fetch the RSS feed
    $rss = fetch_feed($atts['rss_url']);
     // Check if the feed is valid
    if (!is_wp_error($rss)) {
        // Get the feed items
        $feed_items = $rss->get_items();
         // Initialize output variable
        $output = '';
         // Loop through each feed item
        foreach ($feed_items as $item) {
            // Extract item data
            $title = $item->get_title();
            $content = $item->get_content();
            $date = $item->get_date('Y-m-d H:i:s');
            $description = $item->get_description(); // Get description
            $enclosure = $item->get_enclosure()->get_link(); 
             // Check if post with same title already exists
            $existing_post = get_page_by_title($title, OBJECT, $atts['post_type']);
             // If post doesn't exist, insert a new post
            if (!$existing_post) {
               $post_data = array(
                    'post_title'    => $title,
                    'post_content'  => $content,
                    'post_date'     => $date,
                    'post_status'   => 'publish',
                    'post_author'   => 4, // Change this to the desired author ID
                    'post_type'     => $atts['post_type'], // Use the custom post type
                    'post_excerpt' => $description,
                );
                 // Insert the post
                $post_id = wp_insert_post($post_data);
                if ($post_id) {
                    if ($enclosure) {
                        $iframe = '<iframe src="'.$enclosure.'" title="Podcast Player" scrolling="no" width="100%" height="165px" frameborder="0"></iframe>';
                        update_field( 'podcast_iframe', $iframe, $post_id );
                       // echo $iframe;
                     }
                    $output .= "Post inserted with ID: ($post_id) $title<br>";
                    //exit();
                } else {
                    $output .= "Failed to insert post: $title<br>";
                }
            } else {
                $output .= "Post already exists: $title<br>";
            }
        }
    } else {
        $output = "Error fetching RSS feed: " . $rss->get_error_message() . "<br>";
    }
     return $output;
}
add_shortcode('c2_fetch_posts_from_feed', 'c2_insert_posts_from_feed');

Jagdish Sarma Asked question April 24, 2024
Add a Comment