J'utilise WP function fetch_feed pour récupérer un flux et afficher ses éléments.
<?php
/* include the required file */ include_once(ABSPATH . WPINC . '/feed.php');
/* specify the source feed */ $rss = fetch_feed('FEED_URL');
/* checks obj. is created */ if (!is_wp_error( $rss ) ) :
/* specify number of items */ $maxitems = $rss->get_item_quantity(4);
/* create an array of items */ $rss_items = $rss->get_items(0, $maxitems);
endif;
?>
<ul>
<?php if ($maxitems == 0) echo '<li>Content not available.</li>';
else
// Loop through each feed item and display each item as a hyperlink.
foreach ( $rss_items as $item ) : ?>
<li>
<a href="<?php echo $item->get_permalink(); ?>" title="<?php echo esc_html( $item->get_title() ); ?>" rel="external"><?php echo esc_html( $item->get_title() ); ?></a>
</li>
<?php endforeach; ?>
</ul>
Si je visite le flux en question avec (par exemple) Firefox, je vois les entrées dans l'ordre d'affichage XML. fetch_feed récupère le plus récent à la place (selon leur tag "publié"). Comment puis-je m'assurer qu'il récupère les éléments en fonction de leur ordre dans le flux XML (et non chronologiquement). Peut-être est-il possible de définir l'ordre avec this ..?
EDIT: J'ai essayé d'ajouter $ feed-> enable_order_by_date (false); mais ça semble casser la fonction ..
Ok, trouvé. J'ai passé des heures à cela mais j'ai réussi à trouver la solution. La commande que je cherchais était $ rss-> enable_order_by_date (false) ;.
Donc, vous devriez définir (pour le bénéfice de la communauté):
<?php
/* include the required file */ include_once(ABSPATH . WPINC . '/feed.php');
/* specify the source feed */ $rss = fetch_feed('FEED_URL');
/* disable order by date */ $rss->enable_order_by_date(false);
/* checks obj. is created */ if (!is_wp_error( $rss ) ) :
/* specify number of items */ $maxitems = $rss->get_item_quantity(X);
/* create an array of items */ $rss_items = $rss->get_items(0, $maxitems);
endif;
?>
<ul>
<?php if ($maxitems == 0) echo '<li>Content not available.</li>';
else
// Loop through each feed item and display each item as a hyperlink.
foreach ( $rss_items as $item ) : ?>
<li>
<a href="<?php echo $item->get_permalink(); ?>" title="<?php echo esc_html( $item->get_title() ); ?>" rel="external"><?php echo esc_html( $item->get_title() ); ?></a>
</li>
<?php endforeach; ?>
</ul>
J'espère que cela t'aides! :)