WordPressで外部サイトのRSS情報を取得して更新情報を表示させる方法
ポータルサイトなどを構築する際、外部のサイトの更新情報を自動的に表示させたい場合があると思います。
その場合は、その外部サイトのRSSを利用して最新情報を取得することができます。
目次
RSSとは
RSSとウェブサイトの更新情報を自動で配信する文章フォーマットです。
Really Simple Syndicationの略です。
更新情報を受け取りたいサイトのRSSを、RSSリーダーなどに登録しておくことで、そのサイトにわざわざいかなくても更新情報を自動的に受け取ることができます。
お気に入りのサイトの更新をRSSリーダーをつかうことで情報収集を格段に効率化できます。
WordPressで作ったサイトに外部サイトの更新情報を表示させる
WordPressでは自サイト内の更新情報を関数をつかってかんたんに表示させることができますが、同様に外部サイトの更新情報についてもWordPressの関数をつかうことでかんたんに取得し表示させることができます。
fetch_feed関数
fetch_feed関数は、パラメータにURIを指定することで、そのURIのRSSを情報を取得し分析することができます。
この関数で取得した情報を表示させることで、外部サイトのRSSを自サイト内に表示させることができるようになります。
実装方法
<?php
//WrodPressのfeed.phpの呼び出し
include_once ABSPATH . WPINC . '/feed.php';
// 目的のFeedを取得
$feed = fetch_feed('http://commune.web-creator-world.com/?feed');
if (is_wp_error($feed)) {
$maxitems = 0;
} else {
//5件取得
$maxitems = $feed->get_item_quantity(5);
$items = $feed->get_items(0, $maxitems);
}
?>
<h4>
<a href="http://commune.web-creator-world.com/">Web Create Commune 新着情報</a>
</h4>
<?php if ($maxitems): // データあったら表示 ?>
<ul>
<?php foreach ($items as $item): ?>
<li>
<span class="date">
<?php echo $item->get_date('Y.m.d'); ?>
</span>
<br>
<a href="<?php echo $item->get_permalink(); ?>">
<span class="title">
<?php echo mb_strimwidth($item->get_title(), 0, 60, '…'); ?>
</span>
</a>
</li>
<?php endforeach; ?>
</ul>
<?php else: // データ無しの場合 ?>
<!-- データないよ -->
<?php endif; ?>
複数のサイトから取得する場合
$feedに代入するURIを配列で複数にしてあげます。
$feed = fetch_feed(array(
'https://296.co.jp/feed',
'https://appartement.in/feed',
'https://studio.appartement.in/feed'
));
Google Feed APIは使用不可
以前は、外部サイトのRSSを取得してくるのに、Google Feed APIを使用するのが一般的でしたが、現在のこのAPIは廃止されていますので利用できません。