他サイトの「RSS」や「ATOM」を読み込んで、自分のサイトに表示させたい場合に使うライブラリがあります。
以前は「MagpieRSS」にお世話になっていたのですが、WordPress を 2.7 から 2.8 にアップグレードしたとたん、ぱったりと表示しなくなってしまいました…。
(WordPress で作ったサイトの新着記事を、MagpieRSS を使って WordPress でない別のサイトに表示させていました)
どうやって修正してよいかもわからないので、とりあえず検索すると、「MagpieRSS」よりエラーも少なく使いやすい「SimplePie」というライブラリがあるとか。「ほんとうにシンプルだったらいいのに〜」と思いながら、祈る気持ちでトライしてみました。
- SimplePie
-
RSS や Atom フィードをパースするクラスライブラリ。
配布元 : SimplePie(Ver. 1.2)
正直申しまして、いろんなサイトにサンプルが書かれていましたので、同じようにしてみるもののまったく読み込めず…。エラーばかり…。
(Fatal error: Call to undefined method SimplePie…… うんぬんのエラーが出ました)
心が折れそうになりましたが、根気よく検索しますと、以下のような記事に遭遇!
詳しいことはわかりませんが、どうやら SimplePie がバージョンアップの際に仕様が変わったそうなのです!
「なるほど、そうだったのか〜!」とこちらのサンプルを拝借したところ、あっさりフィードできるようになりました。
お〜、ありがたや〜、ありがたや〜!!
使い方
-
配布元より、SimplePie(Ver. 1.2)をダウンロードします。(simplepie_1.2.zip)
-
解凍すると「simplepie_1.2」というフォルダが展開され、中にはたくさんのファイルがありますが、「simplepie.inc」だけを使用します。そして、新着記事を表示したい側のサイトのサーバー内へアップロードします。
また、「cache」というキャッシュ用のフォルダも作成します。
(この例では、トップページと同じ階層に置きました)
-
表示させたい箇所に、以下のようなソースコードを挿入します。
以下のサンプルは、複数の人たちで執筆中のブログの最新記事を表示したときに使ったものです。
(「タイトル」「記事のURL」「日付」「投稿者名」の4つの要素を取得しています)<ul class="blog-new"> <?php include('simplepie.inc'); // simplepie.inc を読み込む $feed=new SimplePie; // インスタンス生成 $feed->set_cache_location('cache'); // Cache ディレクトリ $feed->set_feed_url('http://www.********.com/feed/'); // フィードしたいRSSのURL $feed->init(); // パースを実行 $feedItems=$feed->get_items(0,5); // 表示件数を指定(この場合5個) foreach($feedItems as $item){ $date = $item->get_date('(Y/m/d)'); // 各記事の日付 $title = $item->get_title(); // 各記事のタイトル $link = $item->get_link(); // 各記事のURL $author = $item->get_author()->get_name(); // 各記事の投稿者名 echo "<li>"; echo "<a href='$link'>$title</a>"; echo "<span>"; echo "$author"; echo "さん"; echo "$date"; echo "</span>"; echo "</li>"; } ?> </ul>
注意点
基本的なことですが、PHPを使用していますので、表示したいページの拡張子は「.php」としないと動きません。
ひとくちメモ
SimplePie を WordPress で使いたい時は、WordPress 用プラグイン「SimplePie Plugin for WordPress」というのもあるようです。
そちらでは、もっと簡単に使えるのかも知れませんね。
(2009.10.21 「SimplePie Plugin for WordPress」の記事 も投稿しました)
でも、WordPress 以外のサイトでも使えるこれを一つ知っておくと、とっても便利そう。
WordPress とは話題がはずれてしまいましたが、私のように「MagpieRSS」で失敗した人などにはオススメです。
この記事に付けられたタグ
関連記事
Comments:2
- Miyako 2011-08-23 (火) 19:02
-
RSSフィードを検索していましたら、こちらのページにたどり着きました。
ソースコードを参考に設置に成功しました。助かりました。
2つのサイトのRSSを表示したい時のphpコードがどうもわかりません。
色々と調べてみたのですが、うまくいきません。
もし宜しかったら、公開していただけませんでしょうか? - ナカグマ 2011-08-23 (火) 19:42
-
2つのサイトのRSSを表示したい時は、
フィードしたいRSSのURLの箇所を$feed->set_feed_url(array(
'http://www.********.com/feed/', 'http://www.********.com/feed/'
));とすれば、表示できると思いますよ。
試してみてください。
Trackbacks:3
- Trackback URL for this entry
- http://www.df-cue.com/wp/2009/10/02/simplepie/trackback/
- Listed below are links to weblogs that reference
- SimplePie : RSSやAtomフィードをパースするクラスライブラリ from WordPress Note
- pingback from WPで外部RSSを読み込む»イラストレーション・ウェブデザインの頁作工房 2009-10-27 (火) 9:32
-
[...] SimlePie 設置方法はこちらを参考にさせていただきました。 [...]
- pingback from Fogburden » RSSパーサーsimplepie.inc 2010-11-09 (火) 1:55
-
[...] 下記のwordpress note様から引用させて頂きます。 [...]
- pingback from ウェブサイトの情報を RSSでご提供しています。 | 遺品整理ネクスト-東京都・兵庫県 2011-05-25 (水) 9:29
-
[...] 外部RSSを表示させる解説1 [...]
