ホーム > WordPress | テンプレート > 外部サイトのRSSフィードを取得して表示させてみる。

外部サイトのRSS表示外部サイトになるリディストリビュ~ションのRSS情報をTOPに表示させてみた。



コードの参考はwp.maaguu.comさん?のWordPress MUのトップページに、RSSフィードを取得して各ブログの新着記事を日付順にソートして表示するをほとんどパクりました(笑)

元コード

<?php
include_once(ABSPATH . WPINC . '/rss.php');

//フィードのURI
$rss_arr = array(
    'http://exsample.com/feed/',
    'http://exsample.co.jp/feed/',
    'http://wp.exsample.com/feed/'
);

//表示件数
$num = 10;

foreach($rss_arr as $uri)
{
    $rss = fetch_rss($uri);

    $title = $rss->channel['title'];
    $link  = $rss->channel['link'];

    foreach($rss->items as $item)
    {
        $item_title = $item['title'];
        $item_link  = $item['link'];
        $item_date  = $item['pubdate'];
        $out_item_date  = date('Y年n月j日', strtotime($item_date));

        $out_item = '<dt>
                         <a href="' . $item_link . '">' . $item_title . '</a>
                     </dt>
                     <dd style="font-size:77%;">
                         <a href="' . $link . '">' . $title . '</a>
                     </dd>
                     <dd style="font-size:77%;">' . $out_item_date . '</dd>';

        $unix_time = date('U', strtotime($item_date));
        $item_arr[$unix_time] = $out_item;
    }
}

//ソート
krsort($item_arr);

//出力
echo '<h2>新着' . $num . '件</h2>';

echo '<dl>';

for(reset($item_arr); $key = key($item_arr); next($item_arr))
{
    echo $item_arr[$key];

    ++$count;

    if($count === $num)
    {
        break;
    }
}

echo '</dl>';
?>

このコードの気に入ったところはRSSを複数指定できるのと、フォームの吐き出しをちゃんと考えてくれてるってとこですね。
ってことで主に吐き出しの部分をいぢくり。
うちのコードは・・・

		<h3>リディストリビュ~ション更新履歴</h3>
			<?php
				include_once(ABSPATH . WPINC . '/rss.php');

			//フィードのURI
			$rss_arr = array(
			    'http://www.redistribution.cc/feed/'
				);

			//表示件数
			$num = 5;

				foreach($rss_arr as $uri)
			{
			$rss = fetch_rss($uri);

			$title = $rss->channel['title'];
			$link  = $rss->channel['link'];

			foreach($rss->items as $item)
			{
			$item_title = $item['title'];
			$item_link  = $item['link'];
			$item_date  = $item['pubdate'];
			$out_item_date  = date('Y年m月d日 H時i分', strtotime($item_date));
			$thumbnail = get_bloginfo('template_directory')."/images/18r.gif";
			$out_item = '
        	<ul class="entry_list">
			<li class="image"><a href="' . $item_link . '" target="_blank"><img src="' . $thumbnail . '" title="' . $item_title . 'の記事を読む?" hspace="0" align="left" width="50" height="38" /></a></li>
			<li class="date"><strong>' . $out_item_date . '</strong> 投稿</li>
			<li class="title"><a href="' . $item_link . '" target="_blank">' . $item_title . '</a></li>
			<dd style="font-size:77%;">
			サイト:<a href="' . $link . '" title="' . $title . 'へいってみます?" target="_blank">' . $title . '</a>
			</dd>

			</ul>
			';

			$unix_time = date('U', strtotime($item_date));
			$item_arr[$unix_time] = $out_item;
		}
	}

			//ソート
			krsort($item_arr);

			//出力
			for(reset($item_arr); $key = key($item_arr); next($item_arr))
			{
				echo $item_arr[$key];

				++$count;

				if($count === $num)
			{
				break;
		}
	}
			?>

ってしましたっ!

ニコニコプレスの吐き出しにあわせてます。
あとは日時の吐き出しを日本語?にしたくらいですかね。
コード自体が自分が出したいと思う方法そのままだったのでほぼいぢくりしてません。
そのうち複数サイトの出力項目も追加してみようかなぁ~っと考えてます。
まぁ表示させるサイトが・・・なのですけどね(苦笑)

「外部サイトのRSSフィードを取得して表示させてみる。」 について、Twitterでつぶやく

関連記事

2件のコメント

  • お~WordPressのRSSリーダーを使って・・・ふむふむ。。
    これで、アイテム内の画像等を表示できたら尚更良いですねぇ。。
    あと、ファビコンとか。
    FaviconAPIを前まで使ってたけど、現在休止中という;;

    ニコニコプレス用のコードありがたいです!

    投稿日:2009年04月04日(土曜日) 02時13分 | パーマリンク

  • ken c-unknown

    FaviconはサイトURL/favicon.icoで吐けそうですね。
    #うちみたいにドメイン/favicon.icoで公開してる場合もあるのでURLの整形が必要ですね。

    画像はどうなんでしょ・・・。
    そこまでの機能は必要なさそうな感じがしますけどね:p

    投稿日:2009年04月04日(土曜日) 14時10分 | パーマリンク

コメントを書く

メールアドレスは公開されません。
*」は必須項目です。

*
*

1件のトラックバック

  • [...] 外部サイトのリディストリビュ~ションの更新情報をTopに表示(RSSより取得)させてましたが、WP2.9.xにアップデート後、投稿日時が何故か投稿を押した時間(公開時間で取れない)で取得されるようになったので、Atomフィードから取るように変更してみました。 RSSフィードの取得はこちら:外部サイトのRSSフィードを取得して表示させてみる。 [...]

トラックバックを送る

トラックバック送信先URL
言及リンクが含まれないトラックバックは削除する場合があります。
外部サイトのRSSフィードを取得して表示させてみる。 from りでぃすとりびゅ~しょん