2009.10.29

WordPressで日付入りRSSを取得して表示させる

AUTHOR

nichol_091029

nicholことデザイナーの勝田です。
デザインと構築が主な仕事で、このブログの作者です。
Wordpressの構築は素人なので、のめりこんで作ってたら、いつのまにかたかみーに初投稿を奪われていました。なんと。。

それはそうと、このブログのサイドに社長andチーフディレクターのブログがアーカイブされているのですが、ここでちょっとハマった問題について書きたいと思います。

RSSをアーカイブさせる方法は、大きく分けて

1.プラグインを使う
2.直接phpを書く

があると思うんですが、「余計なプラグインを入れるな」というチーフディレクターからの命令により今回は後者の方法を選びました。

phpはまったくわからないため、ググってソースを探してたら、WebTecNoteさんで

[WP]wordpressでRSSを取得して表示

という記事を発見。さっそくテンプレートに書き加えてみる。

これでRSS表示はOKなんですが、このままだと日付表示ができない。
ここでたかみー参戦。
PHPの知識があるたかみーに手伝ってもらいつつ、日付表示のためのソースを打ってみる。

でも、出ない。。

RSS側では日付はpudDateで囲まれてるから、素人考えでは、

<?php echo $item['pudDate']; ?>

でいけるんじゃないの?とやってみたけどひたすら表示されない。
あきらめかけたころ、

RSSフィードを取得して各ブログの新着記事を日付順にソートして表示する

という記事を発見。やってみる。

…出た!!!

でもなんで?とソースをよく見てみると、pudDateがpubdateになってることにたかみーが気づく。
まさか、こんなことで??と思いながらはじめのソースに加えてみると、

いけました。

なんということでしょう・・

あまりに簡単なことに、脱力してしまいました。
これを機に、PHPも勉強せなあかんなあ、と思った一日でした。

ちなみに、完成したソースがこれ↓です。

<?php
include_once(ABSPATH . WPINC . '/rss.php');
define('MAGPIE_OUTPUT_ENCODING' , 'UTF-8');
define('MAGPIE_CACHE_DIR' , './cache');
define('MAGPIE_FETCH_TIME_OUT', 30);
define('MAGPIE_CACHE_AGE', 60*60);
$rss = fetch_rss('http://doors.co.jp/toblog/feed');
$maxitems = 3;
$items = array_slice($rss->items, 0, $maxitems);
?>
<ul>
<?php if (empty($items)) echo '<li>No items</li?>';
else
foreach ( $items as $item ) : ?>
<li>
<span>
<?php $item_date  = $item['pubdate'];
       $out_item_date  = date('Y.n.j', strtotime($item_date));
       echo $out_item_date; ?>
</span>
<a href='<?php echo $item['link']; ?>' target="_blank">
<?php echo $item['title']; ?>
</a></li>
<?php endforeach; ?>

戸田@ドアズ社長ブログ

  • No items
PAGE TOP