Fermer

décembre 30, 2022

Comment syndiquer des flux RSS externes dans votre thème WordPress ou votre thème enfant


Certaines personnes ne s’en rendent pas compte, mais WordPress a intégré la possibilité de se syndiquer RSS flux avec certaines fonctionnalités prêtes à l’emploi. Bien qu’il existe des widgets pour ce faire, vous souhaiterez peut-être inclure la possibilité de publier d’autres flux directement dans votre modèle WordPress.

WordPress prend en charge à la fois la mise en cache RSS Magpie et SimplePie dans sa fonction disponible, récupérer_flux:

  • récupérer_flux – récupérer un flux RSS à partir d’une URL avec mise en cache automatique

Cela est vraiment pratique si vous avez plusieurs sites et que vous souhaitez partager vos articles de blog sur les autres sites dès qu’ils sont publiés. Il peut aussi être agréable d’un référencement point de vue, en produisant automatiquement des backlinks sur un autre site au fur et à mesure que vous publiez votre contenu.

J’ai également utilisé cette approche pour publier des podcasts et des flux vidéo d’un site à un autre.

Thème WordPress ou modèle de thème enfant

// 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>

Si vous publiez et ne voyez pas immédiatement votre nouvelle publication sur un autre site, gardez à l’esprit que fetch_feed est mis en cache pendant 12 heures par défaut. Vous pouvez modifier cela en modifiant l’intervalle de temps via le filtre 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');

Si vous souhaitez mettre à jour le cache d’un flux spécifique, vous pouvez appliquer le filtre, récupérer le flux, puis réappliquer la durée de cache par défaut en mettant à jour votre code comme suit :

// 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' );

Modifiez votre modèle WordPress (Conception > Éditeur de thème) et placez le code à l’endroit où vous souhaitez que le flux soit publié. Il existe également une tonne de widgets de barre latérale qui publieront également des flux pour vous.




Source link

décembre 30, 2022