web-dev-qa-db-fra.com

fetch_feed retournant les flux rss sur le même serveur que vide

J'essaie d'utiliser fetch_feed pour extraire un flux hébergé sur le même serveur (mais utilise un nom de domaine différent). Ainsi, mon site est, par exemple, bullfrogs.com et j'essaie d'extraire un flux RSS d'événements de tadpoles.com, qui est hébergé sur le même serveur mais pas dans le même WP install et en utilisant un nom de domaine différent. Ça ne marche pas Il indique qu'il n'y a "pas d'éléments" dans le flux.

Maintenant, je peux utiliser exactement la même fonction fetch_feed pour extraire tout autre flux RSS validé (tel que, par exemple, CNN ou Gawker) d'un serveur externe dans bullfrogs.com. Je peux également utiliser le même bloc de code sur un autre de mes sites sur un hôte/serveur Web complètement différent, turtles.com, et le flux RSS de tadpoles.com sera extrait sans aucun problème. Le flux RSS de tadpoles.com est validé avec l'outil de validation RSS du W3C.

Supposons que je ne connais pas grand chose au sujet du serveur, que je ne le gère pas et que je doive demander à un administrateur système de m'aider si le problème ne peut pas être résolu à partir du tableau de bord WordPress. Il a déjà signalé qu'il ne voyait rien dans les informations de débogage ou les journaux de site, mis à part une erreur 500 dans le flux RSS. Comment puis-je poser des questions sur d'autres possibilités et quelles choses devrais-je rechercher?

Le code provient de ce site et ressemble à ceci:

    <?php if(function_exists('fetch_feed')) {

    include_once(ABSPATH . WPINC . '/feed.php');               // include the     required file
    $feed = fetch_feed('http://tadpoles.com/feed'); // specify the source feed

    $limit = $feed->get_item_quantity(7); // specify number of items
    $items = $feed->get_items(0, $limit); // create an array of items

    }
if ($limit == 0) echo '<div>The feed is either empty or unavailable.</div>';
else foreach ($items as $item) : ?>

<div>
    <a href="<?php echo $item->get_permalink(); ?>" 
      title="<?php echo $item->get_date('j F Y @ g:i a'); ?>">
        <?php echo $item->get_title(); ?>
    </a>
</div>
<div>
    <?php echo substr($item->get_description(), 0, 200); ?> 
    <span>[...]</span>
</div>

<?php endforeach; ?>

Merci d'avance.

1
bobby

On dirait que vous avez un problème de configuration du serveur - en particulier un problème de bouclage.

Parfois, les serveurs rencontrent des difficultés pour s’authentifier via un nom de domaine complet. Cela peut provenir de nombreuses choses différentes, mais le mieux (en premier) est de demander à votre administrateur système de vérifier que tous vos domaines existent dans le fichier Host du serveur et de vous référer à l'adresse IP locale sur laquelle chaque virtualhost écoute. Comme:

127.0.0.1 bullfrogs.com
127.0.0.1 tadpoles.com

C'est la chose la plus probable. Mais si cela ne résout pas le problème, demandez à votre administrateur système d’explorer d’autres complications possibles avec le bouclage et la configuration de votre serveur Web (le serveur peut-il adresser des demandes à ses propres sites). C'est quelque chose que l'administrateur système devrait pouvoir diagnostiquer à partir de la CLI du serveur à l'aide de requêtes CURL rapides.

0
MathSmath