読者です 読者をやめる 読者になる 読者になる

WordPress で外部サイトの RSS フィードをページ内に出力して表示するには

WordPress PHP

あるサイト内に別のサイトの RSS フィードをページ内に表示するにはウィジェットを使うと簡単です。
しかし、ページのコンテンツの一部として表示するには自由にタグ付けや情報を取り出して出力したい。

WordPress 2.8 以降には fetch_feed というキャッシュ機構を備えるフィード取得関数が用意されてます。
Function Reference/fetch feed « WordPress Codex
※使うには、feed.php をインクルードしておく必要がある。

これを使って ul, li のリストとしてはてなダイアリーRSS を取得して書き出す処理を作ったので載せておきます。

fetch_feed は SimplePie を使って実装されているので、各フィードのエントリに関する項目は SimplePie Documentation: SimplePie_Item を参考にできます。

<ul>
<?php
include_once(ABSPATH . WPINC . '/feed.php');

$rss = fetch_feed('http://d.hatena.ne.jp/tilfin/rss2');
$rss_items = $rss->get_items(0, $rss->get_item_quantity(5) );

if ($rss_items) {
  foreach ( $rss_items as $item ) {
    $title = $item->get_title();
    $pos = strpos($title, "] ");
    if ($pos !== false) {
      $title = substr($title, $pos + 2);
    }

    echo '<li><span class="date">' . $item->get_date('Y.n.j') . '</span>';
    echo '<a href="' . $item->get_permalink() + '">' . $title;
    echo '</a></li>';
  }
}
?>
</ul>

エントリーのタイトルから [タグ] は取り除くようにしています。自分は最後のタグとタイトルの間にスペースを1つ入れるルールにしているため上記のような簡略処理で書きました。