Sådan syndikerer du eksterne RSS-feeds i dit WordPress-tema eller undertema
Nogle mennesker er ikke klar over det, men WordPress har integreret evnen til at syndikere RSS feeds med nogle færdige funktioner. Selvom der er widgets til at gøre dette, vil du måske faktisk inkludere muligheden for at udgive andre feeds direkte i din WordPress-skabelon.
WordPress understøtter både Magpie og SimplePie RSS Caching inden for dens tilgængelige funktion, hent_feed:
- hent_feed – Hent et RSS-feed fra en URL med automatisk caching
Dette er virkelig praktisk, hvis du har flere websteder og ønsker at dele dine blogindlæg på de andre websteder, så snart de offentliggøres. Det kan også være rart fra en SEO synspunkt, producerer backlinks på et andet websted automatisk, når du udgiver dit indhold.
Jeg har også brugt denne tilgang til at udgive podcasts og videofeeds fra et websted til et andet.
WordPress-tema eller børnetemaskabelon
// Get RSS Feed(s)
include_once( ABSPATH . WPINC . '/feed.php' );
$rss = fetch_feed('https://feed.martech.zone');
if ( ! is_wp_error( $rss ) ) :
$maxitems = $rss->get_item_quantity( 5 );
$items = array_slice($rss->get_items, 0, $maxitems);
endif;
?>
<ul>
<?php if (empty($items)) echo '<li>No items</li>';
else
foreach ( $items as $item ) : ?>
<li><a href='<?php echo esc_url( $item->get_permalink() ); ?>'
title='<?php printf( __( 'Posted %s', 'my-text-domain' ), $item->get_date('j F Y | g:i a') ); ?>'>
<?php echo esc_html( $item->get_title() ); ?>
</a></li>
<?php endforeach; ?>
<?php endif; ?>
</ul>
Hvis du udgiver og ikke umiddelbart ser dit nye indlæg på et andet websted, skal du huske på, at fetch_feed caches i 12 timer som standard. Du kan ændre dette ved at ændre tidsintervallet via filteret
wp_feed_cache_transient_lifetime.function update_cache_time( $seconds )
{
// change the default feed cache recreation period to 1 hour
return (int) 3600;
}
//set feed cache duration
add_filter( 'wp_feed_cache_transient_lifetime', 'update_cache_time');
Hvis du gerne vil opdatere cachen for et bestemt feed, kan du anvende filteret, hente feedet og derefter genanvende standard cachetiden ved at opdatere din kode som følger:
// filter to set cache lifetime
add_filter( 'wp_feed_cache_transient_lifetime' , 'update_cache_time' );
$rss = fetch_feed( $feed_url );
// reset the cache lifetime to default value
remove_filter( 'wp_feed_cache_transient_lifetime' , 'update_cache_time' );
Rediger din WordPress skabelon (Design > Temaeditor) og placer koden, hvor du ønsker, at feedet skal offentliggøres. Der er også et væld af sidebar-widgets derude, som også vil udgive feeds for dig.