外部サイトになるリディストリビュ~ションの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;
}
}
?>
ってしましたっ!
ニコニコプレスの吐き出しにあわせてます。
あとは日時の吐き出しを日本語?にしたくらいですかね。
コード自体が自分が出したいと思う方法そのままだったのでほぼいぢくりしてません。
そのうち複数サイトの出力項目も追加してみようかなぁ~っと考えてます。




2件のコメント
ヒロカワズ
お~WordPressのRSSリーダーを使って・・・ふむふむ。。
これで、アイテム内の画像等を表示できたら尚更良いですねぇ。。
あと、ファビコンとか。
FaviconAPIを前まで使ってたけど、現在休止中という;;
ニコニコプレス用のコードありがたいです!
ken
FaviconはサイトURL/favicon.icoで吐けそうですね。
#うちみたいにドメイン/favicon.icoで公開してる場合もあるのでURLの整形が必要ですね。
画像はどうなんでしょ・・・。
そこまでの機能は必要なさそうな感じがしますけどね:p