Quantcast
Channel: WordPress.org Forums
Viewing all articles
Browse latest Browse all 46187

chryton on "Choosable Sequential RSS Feed"

$
0
0

So the client wants an accordion-style news feed on their front page. I was hoping to use an RSS feed in each part of the accordion to display the newest post, then second newest post, etc.

So what I am needing is a way to choose how far back the RSS feed starts. For instance, i am wanting the second accordion section to start with the second newest post, the third with the third newest post, and so on.

Along with JShortcodes, the following is what I am using in functions and was hoping to add an if statement to make it work but I am a PHP noob and google isn't helping.

/*
*	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('F j, Y');

				// Output
				$html .= "<li id='post-$'$last>";
				$html .= "<h3><a href='$link'>$title::</a></h3>";
				if( $date == true ) $html .= "<span class='date'>$date_posted</span>";
				$html .= "<div class='rss-entry'>$desc</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' => '5',
			'feed' => 'http://www.andrewemauney.com/doublesecret/?feed=rss',
			'date' => false,
		), $atts));

		$content = base_rss_feed($size, $feed, $date);
		return $content;
	}
	add_shortcode("rss", "base_rss_shortcode");
}

Viewing all articles
Browse latest Browse all 46187

Latest Images

Trending Articles



Latest Images