FeedのURLの確認
最初にRSSを配信しているFeedの確認をしてみます。
例えば「http://www.example.com/」にWordpressをインストールしたならURLは下記になります。
http://www.example.com/feed
SimpleXMLを使用した場合
記事のタイトル、リンク、抜粋などの基本的な情報なら、標準機能の「SimpleXML」を使用するだけなので簡単です。
適当なphpファイルに以下のように記述してください。
index.php
$feed = simplexml_load_file('http://www.example.com/feed','SimpleXMLElement',LIBXML_NOCDATA); <?php foreach($feed->channel->item as $item): ?> <div> <h3><a href="<?php echo $item->link; ?>"> <?php echo $item->title; ?></a></h3> <p class="date"> <?php echo date('Y年m月d日',strtotime($item->pubDate)); ?> </p> <p><?php echo $item->description; ?></p> </div> <?php endforeach; ?>
simplexml_load_fileは通常ファイル名を指定するだけですが抜粋(description)のように「CDATA」で囲まれている場合は、引数に「’SimpleXMLElement’,LIBXML_NOCDATA」といれます。
SimpleXMLでCDATAを扱う | [k]id
SimplePieを使用した場合
コンテンツは「content:encoded」となっているのでSimpleXMLでは解析できないようです。(出来る方法があるかもしれませんが、、)
そこで「SimplePie」というライブラリを使用してコンテンツの内容も表示してみます。
下記ページからライブラリをダウンロードします。
SimplePie
解凍したフォルダの中に色々とファイルが入っていますが、使用するのは「simplepie.inc」だけです。
このファイルを先ほどのphpファイルと同階層に配置しましょう。
キャッシュも保存することができるので「cache」というフォルダも作成しておきます。
index.php
<?php //SimplePieの設定 include('simplepie.inc'); $feed = new SimplePie; $feed->set_cache_location('cache'); // キャッシュディレクトリの指定 $feed->set_feed_url('http://www.example.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 $content = $item->get_content(); //抜粋 ?> <div> <h3><a href="<?php echo $link ?>"><?php echo $title ?></a></h3> <p class="date"><?php echo $date; ?></p> <div><?php echo $content; ?></div> </div> <?php endforeach; ?>
WordPress Note – SimplePie : RSSやAtomフィードをパースするクラスライブラリ