WordPress - RSS feed tonen


Wil je graag een RSS feed met bijvoorbeeld nieuwsberichten tonen van een externe website dat is dit mogelijk middels de onderstaande code. In de code hieronder vul je op de tweede regel het adres in van de RSS feed en op de vierde regel achter 'get_item_quantity' bepaal je hoeveel items je maximaal wilt laten zien. Standaard is de code zo ingericht dat de titel van het bericht wordt getoond samen met een link naar het item. Door de comment weg te halen voor de regel $item->get_description(); zal ook de omschrijving worden getoond.

<?php
        include_once( ABSPATH . WPINC . '/feed.php' );
        $rss = fetch_feed('http://feeds.feedburner.com/websonic');
        if(!is_wp_error($rss)):
                $maxitems = $rss->get_item_quantity(10);
                $rss_items = $rss->get_items(0, $maxitems);
        endif;
        if($maxitems == 0):
        else:
                foreach($rss_items as $item):
                        echo '<div class="rss-item">';
                                $itemurl = esc_url( $item->get_permalink());
                                echo esc_html($item->get_title());
                                //echo $item->get_description();
                                echo '<a href="' . $itemurl . '">';
                                        echo ' Lees verder';
                                echo '</a>';
                        echo '</div>';
                endforeach;
        endif;
?>


Cache

Standaard is het zo dat een feed met de bovenstaande code zal worden opgehaald door WordPress en vervolgens 12 uur in het geheugen opgeslagen zal worden. Deze tijd kan uiteraard aangepast worden want vaak is 12 uur langer dan gewenst. Plaats hiervoor de onderstaande code in het functions.php bestand van je thema. Achter 'return' plaats de gewenste tijd, dit gaat in seconden. Hieronder is dat dus 300 seconden, dit is 5 minuten.

function return_rss_cache( $seconds ) {
        return 300;
}
add_filter( 'wp_feed_cache_transient_lifetime' , 'return_rss_cache' );