web-dev-qa-db-fra.com

WordPress peut-il lire son propre flux RSS?

J'utilise une page d'accueil statique pour mon blog, à laquelle j'ai ajouté une zone de barre latérale pour créer un widget de flux RSS. Je souhaite afficher les résumés des deux ou trois derniers articles de blog en page d'accueil, mais j'ai des problèmes avec la mise à jour du widget RSS.

Par exemple, dans le champ Configuration du widget RSS, le champ RSS est similaire à "http://exampleblog.com/feed/". Le flux RSS sera publié lors de la première actualisation après l'activation du widget, mais ne sera pas publié avec les publications les plus récentes. Il ne met pas à jour avec de nouveaux messages.

Une des questions de ce site a attribué un problème similaire à la mise en cache. J'utilise WP Cache sur le serveur Web. Désactiver WP Le cache n'aide pas.

J'ai le sentiment qu'il me manque une procédure simple, mais je ne trouve aucune mention dans le Codex ou sur ce site.

1
bbeeman

Il est préférable d’utiliser une boucle de requête pour afficher les publications, qui est une version modifiée de la boucle principale WP. Cette boucle de requête n'interférera pas avec la boucle principale WP et peut être utilisée plusieurs fois dans un sidebar ou un post/page avec l'exécution php activée. Utilisez un widget php dans votre barre latérale: WordPress ›PHP Code Widget" Plugins WordPress

Remplacez mycategory par le nom d'une catégorie ou supprimez-le pour tout afficher. Et modifiez les expositions en fonction du nombre de publications que vous souhaitez, ou -1 pour tout afficher. Vous devrez CSS style la sortie.

<?php $my_query = new WP_Query('category_name=mycategory&showposts=1'); ?>

<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>

<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">

<?php the_title(); ?></a>

<?php the_excerpt(); ?>

<?php endwhile; ?>

Voir aussi La boucle "Codex WordPress et Référence de la fonction/Requête WP" Codex WordPress

2
markratledge

La raison pour laquelle elle ne se met pas à jour est que fetch_feed() a sa propre mise en cache transitoire dont la valeur par défaut est de 12 heures.

Vous pouvez filtrer la valeur de la durée de vie du cache (globalement ou pour une URL de flux spécifique) à l'aide du filtre wp_feed_cache_transient_lifetime, mais pour son propre contenu, il est en effet préférable d'accéder directement aux données plutôt que de passer par RSS.

Si vous ne voulez pas le coder vous-même - essayez le plugin Query Posts .

0
Rarst