@ WordPress

外部のRSSフィードを取得して表示する

fetch_feed() 関数を使い、外部のRSSフィードを取得し表示できます。

以下のサンプルのソースコードでは、既存の外部の RSS フィードを取得して、最新5件を表示させることができます。

example.php

<h2><?php _e( 'Recent news from Some-Other Blog:', 'my-text-domain' ); ?></h2>

<?php // RSS フィードを取得します。
include_once( ABSPATH . WPINC . '/feed.php' );

// 以下で、指定されたフィードから SimplePie のオブジェクトを取得します。
// つまり、「http://example.com/rss/feed/goes/here」部分に取得したいフィードを入力すると、SimplePieによってRSSが表示されます。
// なお、この部分について array 関数を使い、配列にすれば、複数の RSS フィードを同時に取得して、複数の RSS フィードを1つにまとめて時系列に並べて表示することもできます。
$rss = fetch_feed( 'http://example.com/rss/feed/goes/here' );

$maxitems = 0;

if ( ! is_wp_error( $rss ) ) : // ちゃんとフィードが生成されているかをチェックします。

	// すべてのフィードから最新5件を出力します。
	$maxitems = $rss->get_item_quantity( 5 );

	// 0件から始めて指定した件数までの配列を生成します。
	$rss_items = $rss->get_items( 0, $maxitems );

endif;
?>

<ul>
	<?php if ( $maxitems == 0 ) : ?>
		<li><?php _e( 'No items', 'my-text-domain' ); ?></li>
	<?php else : ?>
		<?php // 各フィード項目をループし、ハイパーリンクとして表示します。 ?>
		<?php foreach ( $rss_items as $item ) : ?>
			<li>
				<a href="<?php echo esc_url( $item->get_permalink() ); ?>"
					title="<?php printf( __( 'Posted %s', 'my-text-domain' ), $item->get_date('j F Y | g:i a') ); ?>">
					<?php echo esc_html( $item->get_title() ); ?>
				</a>
			</li>
		<?php endforeach; ?>
	<?php endif; ?>
</ul>

以下のソースコードで、RSSフィードの投稿タイトルとサムネール画像を表示して、その記事へのリンクを生成します。

example.php

<?php
include_once( ABSPATH . WPINC . '/feed.php' );
//「http://www.techmeme.com/feed.xml」部分に取得したいフィードを入力します。
$rss = fetch_feed( 'http://www.techmeme.com/feed.xml' );
if ( !is_wp_error( $rss ) ) {
	$maxitems = $rss->get_item_quantity( 5 );
	$rss_items = $rss->get_items( 0, $maxitems );
}
?>
<?php if ( !empty( $maxitems ) ) : ?>
<ul>
	<?php foreach ( $rss_items as $item ) : ?>
	<li>
		<a href="<?php echo $item->get_permalink(); ?>">
			<?php
			$first_img = '';
			// 投稿の1枚目の画像を取得
			if ( preg_match( '/<img.+?src=[\'"]([^\'"]+?)[\'"].*?>/msi', $item->get_content(), $matches ) ) { $first_img = $matches[1]; } ?>
			<?php if ( !empty( $first_img ) ) : ?>
			<span class="thumbnail">
				<img src="<?php echo esc_attr( $first_img ); ?>" alt="" />
			</span>
			<?php endif; ?>
			<?php echo $item->get_title(); ?>
		</a>
	</li>
	<?php endforeach; ?>
</ul>
<?php endif; ?>

WordPress Codex : 関数リファレンス/fetch feed