WordPressでRSSを表示する、MagpieRSSとSimplePie

WordPressでRSSを表示させるのはウィジェットを使うのが簡単です。
URLを指定するだけですみます。

表示をカスタマイズしたい時は自力でなんとかしないといけません。
でも心配はいりません、いくつかのRSS取得の仕組みがWordPressにはあります。

MagpieRSS

歴史と伝統を感じるMagpieRSS、RSSの取得だったらMagpieだよね。
http://magpierss.sourceforge.net/
MagpieRSSはWordPressに添付されています。

/wp-includes/rss.php

@require_once (ABSPATH . WPINC . '/rss.php');
$rss = fetch_rss($feedurl);
 
$items = $rss->items;
// 1つめ
$item = $rss->items[0];
// title
$title = esc_attr( strip_tags( $item['title'] ) );

な感じで使えます。
fetch_rssは同じrss.phpにあります。

SimplePie

もう一つSimplePieも使えます。
/wp-includes/class-simplepie.php

if ( ! class_exists('SimplePie') ) {
	@require_once (ABSPATH . WPINC . '/class-simplepie.php');
}
$feed = fetch_feed($feedurl);
// 1つめ
$item = $feed->get_item(0);
// title
$title = esc_attr( strip_tags( $item->get_title() ) );

fetch_feed
/wp-includes/feed.php
fetch_feedは次のようになっています。

function fetch_feed($url) {
	require_once (ABSPATH . WPINC . '/class-feed.php');
 
	$feed = new SimplePie();
	$feed->set_feed_url($url);
	$feed->set_cache_class('WP_Feed_Cache');
	$feed->set_file_class('WP_SimplePie_File');
	$feed->set_cache_duration(apply_filters('wp_feed_cache_transient_lifetime', 43200, $url));
	do_action_ref_array( 'wp_feed_options', array( &$feed, $url ) );
	$feed->init();
	$feed->handle_content_type();
 
	if ( $feed->error() )
		return new WP_Error('simplepie-error', $feed->error());
 
	return $feed;
}

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください