web-dev-qa-db-ja.com

fetch_feedがRSSフィードを空と同じサーバに返す

私はfetch_feedを使用して、同じサーバーでホストされているフィードを取得しようとしています(ただし、異なるドメイン名を使用しています)。だから、私のサイトは、例えば、bullfrogs.comであり、同じサーバーでホストされているが同じWPではないtadpoles.comからイベントのRSSフィードを取得しようとしています。別のドメイン名を使用してください。うまくいきません。フィードに「アイテムがない」と表示されます。

これで、まったく同じfetch_feed関数を使用して、他の検証済みRSSフィード(たとえばCNNやGawkerなど)を外部サーバーからbullfrogs.comにプルすることができます。私はまた別の私のサイトで同じコードブロックを全く異なるウェブホスト/サーバー、turtles.com上で使用することができます、そしてそれは問題なくtadpoles.comからRSSを引っ張るでしょう。 tadpoles.comからのRSSフィードは、W3C RSS検証ツールを使用して検証します。

私はサーバーについてあまり知らない、そして私はそれを管理していないし、問題がWordPressダッシュボードから修正することができない何かであるかどうか私に手伝うようにシステム管理者に頼む必要があると仮定しなさい。彼は、RSSフィードの500エラー以外には、デバッグ情報やサイトログに何も表示されないことをすでに報告しています。他の可能性についてどのようにして調べますか?また、探しているものは何ですか?

コードは このサイト からのもので、次のようになります。

    <?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; ?>

前もって感謝します。

1
bobby

サーバー構成の問題、特にループバックの問題があるようです。

FQDNを介して自分自身にHTTPリクエストを送信するのに問題があるサーバーもあります。これにはさまざまな原因が考えられますが、最善の(最初の)方法は、すべてのドメインがサーバーのHostファイルに存在することをシステム管理者に確認させ、各仮想ホストが待機しているローカルIPを参照することです。好きです:

127.0.0.1 bullfrogs.com
127.0.0.1 tadpoles.com

これが最もありそうなことです。それでも問題が解決しない場合は、システム管理者に、ループバックやWebサーバーの構成に関連した他の問題を調査してもらいます(つまり、サーバーが自分のサイトに要求を送信することができます)。これは、システム管理者がいくつかの簡単なCURL要求を使用してサーバーのCLIから診断できるはずのものです。

0
MathSmath