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は廃止されていますので利用できません。

ウェブサイト制作や動画制作のご相談はお気軽に

今すぐ問い合わせる

お問い合わせ

コメントは受け付けていません。

お問い合わせ・ご相談

お見積りのご依頼やそのほかのお仕事のご相談などはお問い合わせフォームからお問い合わせください。

お問い合わせする
会社案内ダウンロード

弊社の会社案内をPDFでご用意しております。社内での検討時などにご利用ください。

ダウンロードする

お電話でのお問い合わせはこちら

※電話番号はおかけ間違いのないようご注意ください。
※セールス目的のお電話はご遠慮ください。