blanket11
4/25/2017 - 8:54 AM

[wp] rss読み込み [fetch_feed/SimplePie]

[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; ?>