[wp] rss読み込み [fetch_feed/SimplePie]
<?php
/**
* RSS取得
*
* @param $rss_url
* @param int $cache_time
* @return array|bool|null
*/
function get_feed_rss($rss_url, $cache_time = 1800) {
add_filter ( 'wp_feed_cache_transient_lifetime' , 'return_'.$cache_time ); // $cache_timeの秒数でキャッシュする
$rss = fetch_feed($rss_url); // RSSの取得
remove_filter( 'wp_feed_cache_transient_lifetime' , 'return_'.$cache_time ); // $cache_timeの秒数キャッシュをリセット
$maxitems = 0;
$rss_items = false;
if (!is_wp_error( $rss ) ) {
$maxitems = $rss->get_item_quantity(10); // 表示する記事の最大件数
$rss_items = $rss->get_items(0, $maxitems);
}
// 0件の場合はfalseを返す
if ($maxitems == 0) {
$rss_items = false;
}
return $rss_items;
}
<?php
$rss_items = get_feed_rss($rss_url);
?>
<?php if($rss_items): foreach ($rss_items as $item): ?>
<article>
<a href="<?php echo $item->get_date('Y/m/d'); ?>">
<h2><?php echo $item->get_title(); ?></h2>
<span>⏰ <time><?php echo $item->get_date('Y/m/d'); ?></time></span>
</a>
</article>
<?php endforeach; endif; ?>