So syndizieren Sie externe RSS-Feeds in Ihrem WordPress-Theme oder Child-Theme
Einige Leute wissen es nicht, aber WordPress hat die Fähigkeit zur Syndizierung integriert RSS Feeds mit einigen sofort einsatzbereiten Funktionen. Es gibt zwar Widgets, um dies zu tun, aber vielleicht möchten Sie tatsächlich die Möglichkeit haben, andere Feeds direkt in Ihre WordPress-Vorlage zu veröffentlichen.
WordPress unterstützt sowohl Magpie als auch SimplePie RSS Caching innerhalb seiner verfügbaren Funktion, fetch_feed:
- fetch_feed – Abrufen eines RSS-Feeds von einer URL mit automatischem Caching
Dies ist wirklich praktisch, wenn Sie mehrere Websites haben und Ihre Blog-Beiträge auf den anderen Websites teilen möchten, sobald sie veröffentlicht werden. Es kann auch schön von einem sein SEO Standpunkt, indem Sie automatisch Backlinks auf einer anderen Website erstellen, wenn Sie Ihre Inhalte veröffentlichen.
Ich habe diesen Ansatz auch genutzt, um Podcasts und Video-Feeds von einer Site zur anderen zu veröffentlichen.
WordPress-Theme oder Child-Theme-Vorlage
// 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>
Wenn Sie Ihren neuen Beitrag veröffentlichen und nicht sofort auf einer anderen Website sehen, denken Sie daran, dass fetch_feed standardmäßig 12 Stunden zwischengespeichert wird. Sie können dies ändern, indem Sie das Zeitintervall über den Filter ändern
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');
Wenn Sie den Cache für einen bestimmten Feed aktualisieren möchten, können Sie den Filter anwenden, den Feed abrufen und dann die Standard-Cache-Zeit erneut anwenden, indem Sie Ihren Code wie folgt aktualisieren:
// 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' );
Bearbeiten Sie Ihre WordPress-Vorlage (Design > Design-Editor) und platzieren Sie den Code an der Stelle, an der der Feed veröffentlicht werden soll. Es gibt auch eine Menge Seitenleisten-Widgets, die auch Feeds für Sie veröffentlichen.