WordPRessで外部サイトのRSS取得する方法

WordPressを使い、外部のサイトのRSSからデータを取得したいと思います。今回の方法はlogwのデータ(WordPress)で更新したデータをsite-lab.jp(WordPress)の新着として載せるため、取得します。

デフォルトで有効

WordPressではRSSを取得できるようになっています。コードは以下のようにして書きます。

<?php
//WrodPressのfeed.phpの呼び出し
include_once ABSPATH . WPINC . '/feed.php';
// 目的のFeedを取得
$feed = fetch_feed('https://www.logw.jp/feed');
if (is_wp_error($feed)) {
	$maxitems = 0;
} else {
	//5件取得
	$maxitems = $feed->get_item_quantity(5);
	$items = $feed->get_items(0, $maxitems);
}
?>

↑これでデータの取得をしています。

<?php if ($maxitems): // データあったら表示 ?>
    <ul>
    <?php foreach ($items as $item): ?>
        <li>
				<?php echo $item->get_date('Y年n月j日'); ?>
            <a href="<?php echo $item->get_permalink(); ?>">
				<?php echo mb_strimwidth($item->get_title(), 0, 60, '…'); ?></a>
          </li>
    <?php endforeach; ?>
    </ul>
<?php else: // データ無しの場合 ?>
<ul>
<li>データがありませんでした。</li>
</ul>
<?php endif; ?>

↑ここで表示をしています。これで表示されます。もしされない場合はSimplePieが機能していない可能性があります。お使いのサーバーを確認したほうがいいです。SimplePieはphp55-simplexmlというモジュールでインストールします。
※PHP5.5系の場合。詳しくはWordPressで外部のRSSが取得できない-解決を閲覧してください。

問題点

RSS取得するのは問題ないのですが、このコードだと最新5件を表示してくれますが、記事を更新したら反映されませんでした。1時間か2時間たっても更新されません。サイトラボでは最新情報5件表示していますが、logwを見ると最新情報が違ったりしています。RSSの時間取得(デフォルト)が1時間などではないかもしれません。一度調べて見ます。

個人支援・寄付について

サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。

  • ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS