• 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 = 'https://www.ads-software.com/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' => 'https://www.andrewemauney.com/doublesecret/?feed=rss',
    			'date' => false,
    		), $atts));
    
    		$content = base_rss_feed($size, $feed, $date);
    		return $content;
    	}
    	add_shortcode("rss", "base_rss_shortcode");
    }

  • The topic ‘Choosable Sequential RSS Feed’ is closed to new replies.