web-dev-qa-db-fra.com

Dépannage de fetch_feed et de SimplePie

J'ai une solution très basique utilisant fetch_feed() et SimplePie pour extraire des éléments RSS qui fonctionne sur mon hôte local, mais pour une raison quelconque, is_wp_error() persiste sous la forme true sur le serveur actif. Est-il possible pour moi d'obtenir des informations spécifiques sur la nature de l'erreur afin de rechercher une solution sur le serveur actif?

<?php
  include_once(ABSPATH . WPINC . '/feed.php');
  $rss = fetch_feed( '[rss feed removed from example]' );
  if (!is_wp_error( $rss ) ) :
    $maxitems = $rss->get_item_quantity(5);
    $rss_items = $rss->get_items(0, $maxitems);
    $isc = 'http://dtd.interspire.com/rss/isc-1.0.dtd';
  endif;
?>
<ul class="featured-products">
  <?php if ( $maxitems == 0) : ?>
    <li>No items.</li>
  <?php else : ?>
    <?php foreach ( $rss_items as $item ) : 
      $image = $item->get_item_tags( $isc, 'thumb'); ?>
      <li>...</li>
    <?php endforeach; ?>
  <?php endif; ?>
</ul>
3
Sampson

ajoutez ceci à votre flux

    $rss = fetch_feed( $url );
    if ( is_wp_error( $rss ) ) {
       echo $rss->get_error_message();  <---this
    } else {
   // do your stuff here
}

Je suggérerais également d'installer les extensions de la barre d'outils débogage, comme "debug-bar-extender".

3
Wyck

Cela pourrait être dû à la désapprobation de rss-functions.php. Vérifiez cette erreur en définissant les erreurs wp dans le fichier de configuration de votre site de vie sur true. Ensuite, vous pourrez peut-être voir le problème. N'oubliez pas de les réinitialiser rapidement après avoir vérifié.

Utilisez wp-includes/rss.php à la place

0
landed