6月 16 2008
自作RSSリーダーでITニュースを公開
本日、本サイトの「ITニュース」コーナーを正式公開した。主要なIT関連サイトの新着記事のサマリーを公開日時の新しい順に並べ替えて表示したものだ。WordPressテンプレートを書いたというより、PHPのプログラム開発をしたという方が近い。自分の読みたい記事をサクッと読むことができて便利だ。よろしければ、お気に入りに追加されたし。
以前、このようなページをBDPRSSというプラグインで作成したことがあるが、このプラグインはすでにサポートが打ち切られ、当然ながらWordPressの公式プラグインとしては登録されていない。公式プラグインのデータベースを探してみたが、結局自分のやりたいことができるものは見つからなかった。そこで、WordPressに用意されているプログラム用の関数を使ってRSSアグリゲータ(RSSリーダー)を開発することにした。今回はその概要を紹介する。
主な仕様は次の通り。
- 複数のサイトのRSSフィードを取得すること
- RSSフィードをキャッシュすること(2度目から素早く表示できる)
- サイト毎に新着記事情報の数を設定できること(デフォルトは5個)
- 新着記事は公開日時の新しい順に並べ替えること
- 表示する情報は、タイトル(リンク)、日付、サイト名(リンク)、サマリー
- サマリーの最大文字数は全角200字とする
- 200字を超える場合は ‘…’ を表示する
- サマリーの後ろに、「続きを読む(リンク)」を表示する
- 日付データの不具合に対処するため、サイトによって公開日時のプラスマイナス時間数を指定できる
現在のところ、RSSフィードを取得しているサイトは次の通り。
- ITmedea 総合
- ZDNet Japan 総合
- CNET Japan 総合
- The Blog Hearald 翻訳版
- Engadget 日本版
テンプレート開発の上で肝となるのが、rss.php というライブラリと、fetch_rss という関数だ。これらは MagpieRSS というオープンソースのプログラムライブラリから WordPress に取り込まれたものだ。
また、ページ用のテンプレートに名前を付けておく必要がある。ファイル先頭のPHPソース部分に次のように書く。
/*
Template Name: RSS_IT
*/
これにより、「ITニュース」のページに「RSS_IT」のテンプレートを適用することができるようになる。オリジナルのページ用テンプレートを作成する場合は必要となるので覚えていただければと思う。
テンプレートファイルのソースコードも公開した。
右クリックして、「リンク先を保存」で保存する。ファイル名が rss_page.php.txt となっているので、.txt を削除する。文字コードはUTF-8だ。
バグなどあればお知らせいただきたい。
[タグ] PHP, RSS, RSSアグリゲータ, RSSリーダー, プログラム
Journey さん
こんばんは、Wordpressで使えるRSSリーダープラグインを探していまして、Journeyさんのページにたどり着きました。
以下のローカル環境でWordpressサイトを構築していています。
WinXP
XAMPP 1.6.6a
(Apache 2.2.8)
(MySQL 5.0.51a)
(PHP 5.2.5)
WordPress 2.5.1ja
主な仕様に書かれているものは、まさに私が探していたものです。
よかったら、使わせていただけないでしょうか?
気に入っていただき、ありがとうございます。
テンプレートファイルを公開しましたので、上のリンクを右クリックして「リンク先を保存」で保存してください。
文字コードはUTF-8です。
Journeyさん
素晴らしいプラグイン、ありがとうございます。使わせていただきます。
きむらさん
ありがとうございます。
ご自分の環境に合わせて、編集してからお使いくださいね♪
[...] インでRssReaderを探したものの欲しいものが見つからず、ネット検索で探し当てました。WordPressな日々というサイトにあるRSSリーダー・テンプレートというテンプレートファイルがそれで [...]
すばらしいものを公開していただきありがとうございます。事後報告ですみませんが、使用及び紹介させていただきました。ご了承いただければ幸いです。よろしくお願いいたします。
ITわかり隊隊長さん
わざわざご報告いただき、ありがとうございます。
設置方法を解説していないので苦労されたとのことで、申し訳ありませんでした。現在はサラリーマンの余暇での執筆で、行き届かない面があるかと思います。
これからもよろしくお願いします。
[...] インでRssReaderを探したものの欲しいものが見つからず、ネット検索で探し当てました。WordPressな日々というサイトにあるRSSリーダー・テンプレートというテンプレートファイルがそれで [...]
[...] 参考にさせていただいたのは自作RSSリーダーでITニュースを公開。 [...]
[...] 参考はこちら。 http://www.junyx.net/wordpress/2008/302 [...]
Journey様
本プログラムを使わせて頂いております。
非常に使いやすく高機能なソースコードで
現在こちらを使用したサイト構築を進めておりますが、
日付表示についてご質問がありコメントさせて頂きました。
ほぼ配布中のソースコードの状態で、
日付表示が日本時間から9時間ほどずれて表示されており、
UTCではなく、GMTの日付になっているかと思うのですが、
こちらをUTC、日本時間の+9の日付で表示はできますでしょうか?
かなり前に開発されたソースコードについての
ご質問になってしまって恐縮ですが、
宜しければご教授ください。
ご返事が遅くなりました。
RSSのタイムスタンプがUTCになってしまうサイトについては次のようなワークアラウンドを行っています。
「’The Blog Herald 翻訳版」の方に、’timeoffset’=>-9 を追記しているのがその箇所です。
$rsses[] = fetch_rss('http://feeds.japan.cnet.com/cnet/rss');
$names[] = array('name'=>'Engadget 日本版',
'url'=>'http://japanese.engadget.com/',
'max'=>8);
$rsses[] = fetch_rss('http://feeds.feedburner.com/engadget/japanese');
$names[] = array('name'=>'The Blog Herald 翻訳版',
'url'=>'http://jp.blogherald.com/',
'max'=>8,
'timeoffset'=>-9);
もし、このような書き方をしてうまく動作しないようでしたら、テンプレートファイルをお送りしますので、
お知らせください。
journey様
お返事頂き誠にありがとうございます。
幾つかFEEDを登録している中で、
>timeoffset’=>-9
上記の記述が漏れていたFEEDがいくつかあり、
こちらを追記することでUTC+9の時間で表示がされるようになりました。
また、ご提示頂いた記述で試したところ、
こちらも問題なく日付・時間表示がされるようになりました。
ご丁寧なサポート、誠にありがとうございます。
そして非常に素晴らしいプラグインをご提供頂き
大変重宝しております。
重ねて御礼申し上げます。
[...] インでRssReaderを探したものの欲しいものが見つからず、ネット検索で探し当てました。WordPressな日々というサイトにあるRSSリーダー・テンプレートというテンプレートファイルがそれで [...]
[...] http://www.junyx.net/wordpress/2008/302#more-302 [...]
はじめまして!
とてもすばらしいテンプレートの公開、ありがとうございます。
まだテストサイトですが、きっちり仕上げて使わせて頂きたいと思います。
ありがとうございます!
見つけていただき、ありがとうございます。
公開されているプラグインの中に気に入るものがなかったので、自作しました。