Revision: 43005
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at March 15, 2011 04:26 by nicomollet
Initial Code
/* * Re-usable RSS feed reader with shortcode */ if ( !function_exists('base_rss_feed') ) { function base_rss_feed($size = 5, $feed = 'http://wordpress.org/news/feed/', $date = false, $cache_time = 1800) { // Include SimplePie RSS parsing engine include_once ABSPATH . WPINC . '/feed.php'; // Set the cache time for SimplePie add_filter( 'wp_feed_cache_transient_lifetime', create_function( '$a', "return cache_time;" ) ); // Build the SimplePie object $rss = fetch_feed($feed); // Check for errors in the RSS XML if (!is_wp_error( $rss ) ) { // Set a limit for the number of items to parse $maxitems = $rss->get_item_quantity($size); $rss_items = $rss->get_items(0, $maxitems); // Store the total number of items found in the feed $i = 0; $total_entries = count($rss_items); // Output HTML $html = "<ul class='feedlist'>"; foreach ($rss_items as $item) { $i++; // Add a class of "last" to the last item in the list if( $total_entries == $i ) { $last = " class='last'"; } else { $last = ""; } // Store the data we need from the feed $title = $item->get_title(); $link = $item->get_permalink(); $desc = $item->get_description(); $date_posted = $item->get_date('d/m/Y'); //$desc = strip_tags($desc); $desc =wp_kses(trim($desc),array()); $desc = apply_filters('the_excerpt', $desc); $desc = strip_tags($desc,""); //print(' --- strlen : '.strlen($desc)); $excerpt_length = 100; $words = explode(' ', $desc, $excerpt_length + 1); //print(' --- words : '.count($words)); if(count($words) > $excerpt_length) : array_pop($words); array_push($words, '...'); $desc = implode(' ', $words); endif; $desc = trim($desc); while(strpos($desc, ' ') !== false) $desc = str_replace(' ', ' ', $desc); //eventually $s will == '/' $desc = substr(($desc),10); // Output $html .= "<li id='post-$i'$last>"; $html .= "<h4><a href='$link'>$title</a></h4>"; if( $date == true ) $html .= "<span class='date'>$date_posted</span>"; $html .= "<div class='rss-entry'>$desc</a></h4></div>"; $html .= "</li>"; } $html .= "</ul>"; } else { $html = "An error occurred while parsing your RSS feed. Check that it's a valid XML file."; } return $html; } } /** Define [rss] shortcode */ if( function_exists('base_rss_feed') && !function_exists('base_rss_shortcode') ) { function base_rss_shortcode($atts) { extract(shortcode_atts(array( 'size' => '10', 'feed' => 'http://wordpress.org/news/feed/', 'date' => false, ), $atts)); $content = base_rss_feed($size, $feed, $date); return $content; } add_shortcode("rss", "base_rss_shortcode"); }
Initial URL
http://www.kevinleary.net/display-rss-feeds-wordpress-shortcodes-simplepie-fetch_feed/
Initial Description
shortcode : [rss size="10" feed="http://wordpress.org/news/feed/" date="true"]
Initial Title
Wordpress RSS shortcode
Initial Tags
wordpress
Initial Language
PHP