[み]WordPressで外部サイトのRSSを取得して表示する方法

WordPressネタです。みなさん、そろそろWordPressでサイトつくってみたくなったんじゃないですか?初めてサーバ借りる方は、ドメインキングが安いですよ。

お名前.comとドメインキングで、独自ドメインのサイトを199円で作れるよ

で、肝心の本題です。いつもと同じように基本コピペでいけますので、じゃんじゃんコピペしてください。

外部RSSを取得して表示する方法

まずは、WordPress Codexにのっているコードがこちらです。

<?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');
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) echo '<li>No items.</li>';
    else
    // 取得できた RSS フィードが0件の時は「No items.」と表示します。
    // 取得できた RSS フィードが1件以上あった時は、以下のように RSS のデータを繰り返します。
    // なお、取得したい RSS のデータは、$itemにあるデータであれば、他のデータも表示させることができます。
    // 以下では、取得してきた外部の RSS フィードの記事タイトルを表示して、その記事へのリンクを実現しています。
    foreach ( $rss_items as $item ) : ?>
    <li>
        <a href='<?php echo $item->get_permalink(); ?>'
        title='<?php echo 'Posted '.$item->get_date('j F Y | g:i a'); ?>'>
        <?php echo $item->get_title(); ?></a>
    </li>
    <?php endforeach; ?>
</ul>

いろいろコメントが書いてあって、どこをどうすればいいのかとってもよく分かります。

が、しかし、これをこのままコピペすると、なんとなくいやなので、カンタンにします。あと、記事がなかったときの「No items.」も変えました。

<?php
     include_once(ABSPATH . WPINC . '/feed.php');
     $rss = fetch_feed('http://miha5.com/feed');  //取得したいRSS
 
if (!is_wp_error( $rss ) ) :
     $maxitems = $rss->get_item_quantity(5);  //取得件数
     $rss_items = $rss->get_items(0, $maxitems);   //指定件数分の配列作成
endif;
?>
 
<ul>
    <?php
    if ($maxitems == 0)  echo '<li>新しい記事はないですよ</li>';
    else foreach ( $rss_items as $item ) :
    ?>
    <li><a href="<?php echo $item->get_permalink(); ?>"><?php echo $item->get_title(); ?></a></li>
    <?php endforeach; ?>
</ul>

これで、5件表示されます。

それで、このコードだと、1つのRSSだけを読み込んでいますが、複数のRSSを読み込んで表示することも可能です。

複数の外部サイトのRSSを読み込んで表示する方法

WordPress Codexのコメントにもありましたが、array 関数を使って配列にすれば、複数のRSSを取得して、複数のRSSを1つにまとめて表示できます。RSSを取得するところをこんな風に変えてやります。

$rss = fetch_feed(array(
'http://miha5.com/feed/',//RSSフィード1
'http://ja.wordpress.org/feed/'//RSSフィード2
));

“,”でつなぐことで複数のRSSを取得できます。

コピペ用のコードがこちらです。

<?php
     include_once(ABSPATH . WPINC . '/feed.php');
     $rss = fetch_feed(array(
     'http://miha5.com/feed/',//RSSフィード1
     'http://ja.wordpress.org/feed/'//RSSフィード2
     ));//取得したいRSS
 
if (!is_wp_error( $rss ) ) :
     $maxitems = $rss->get_item_quantity(5);  //取得件数
     $rss_items = $rss->get_items(0, $maxitems);   //指定件数分の配列作成
endif;
?>
 
<ul>
    <?php
    if ($maxitems == 0)  echo '<li>新しい記事はないですよ</li>';
    else foreach ( $rss_items as $item ) :
    ?>
    <li><a href="<?php echo $item->get_permalink(); ?>"><?php echo $item->get_title(); ?></a></li>
    <?php endforeach; ?>
</ul>

久しぶりのWordPressネタでした。ご静聴ありがとうございました:)

シェアありがとうございます

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

commentYour Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

checkboxみはら.comはエックスサーバーです

PAGE TOP arrowup