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フィードをパースするクラスライブラリ