複数外部RSSフィードをWordPressで表示

複数外部RSSフィードをWordPressで表示

複数外部RSSフィードを表示する方法はGoogleなどで検索すると色んな方法がありますが、ここではWordPressの関数リファレンス/fetch feedに紹介してあるコードを元に色んな形で複数外部RSSフィードをまとめた一覧を表示させてみたいと思います。

関数リファレンス/fetch feedで紹介されているコード

まずはGoogle ウェブマスター向け公式ブログのRSSフィードを関数リファレンス/fetch feedで紹介されているコードをそのまま使い表示してみます。

ここでは1つのサイトのRSSフィードだけを表示しています。でもこれだと何だか寂しいので、ブログパーツでよくあるようにサイトのタイトル、記事のタイトル、日付の表示を追加して表示させてみます。

サイトのタイトルを表示させ複数RSSフィードを日付順に表示する

下記のようなスタイルも関数リファレンス/fetch feedで紹介されているコードを追加変更するだけで簡単に作成できます。

Google ウェブマスター向け公式ブログ
新しいモバイル フレンドリー テスト ツール
(2016-5-19 17:38:00)
Google ウェブマスター向け公式ブログ
2015 年に Google が実施したウェブスパムへの対策
(2016-5-11 12:40:00)
日本語
WordPress 4.5.2 セキュリティリリース
(2016-5-7 09:16:13)
Google ウェブマスター向け公式ブログ
Advanced Hosting Meetup プログラム : 結果のご報告
(2016-5-2 11:30:00)
日本語
WordPress 4.5.1 メンテナンスリリース
(2016-4-27 10:38:26)
日本語
WordPress 4.5 “コールマン”
(2016-4-14 12:05:17)
Google ウェブマスター向け公式ブログ
不正なダウンロード ボタンを撲滅するために
(2016-4-12 16:54:00)
日本語
WordPress 4.5 リリース候補 2
(2016-4-10 15:48:54)
日本語
コントリビューターウィークエンド: Global WordPress Translation Day
(2016-4-9 09:36:20)
日本語
WordPress 4.5 リリース候補
(2016-3-24 23:46:10)

ここで使っているコードは下記の通りです。2つのRSSフィードしかのせてないですが、もちろんRSSフィードは追加させ表示できます。スタイルシートはサイトに合わせて作成してください。

<?php include_once(ABSPATH . WPINC . '/feed.php');
$rss = fetch_feed(array(
'http://feeds.feedburner.com/WebmasterCentral',
//RSSフィード1

'http://ja.wordpress.org/feed/'
//RSSフィード2
));
if (!is_wp_error( $rss ) ) : 
    $rss->set_cache_duration(1800);
    $rss->init(); 
    $maxitems = $rss->get_item_quantity(10); 
    $rss_items = $rss->get_items(0, $maxitems); 
    date_default_timezone_set('Asia/Tokyo');
endif;
?>
<dl>
    <?php if ($maxitems == 0) echo '<dt>No items.</dt>';
    else
    foreach ( $rss_items as $item ) : ?>
    <dt>
<?php echo $item->get_feed()->get_title(); ?><br />
<a href='<?php echo $item->get_permalink(); ?>' target="_blank"><?php echo $item->get_title(); ?></a>
</dt>
<dd>(<?php echo $item->get_date("Y-n-j H:i:s"); ?>)</dd>
<?php endforeach; ?>
</dl>

ここで追加したコード

  • date_default_timezone_set(‘Asia/Tokyo’);で日本時間になるようにしてあります。
  • <?php echo $item->get_feed()->get_title(); ?>でサイトのタイトルを表示してあります。
  • <?php echo $item->get_date(“Y-n-j H:i:s”); ?>で日付を表示しています。
  • $rss->set_cache_duration(1800); $rss->init(); のコードを3/11日に追加させていただきました。WordPressではRSSフィードを表示されるまでに12時間かかって表示されるみたいです。ですのでキャッシュ速度をここで速めて表示されるようにしてあります。
参考記事

RSSフィードの記事を抜粋し文字数を指定して表示する

今度は先ほどのRSSフィード一覧の記事を抜粋し文字数を指定して表示してあります。

新しいモバイル フレンドリー テスト ツール
by Google ウェブマスター向け公式ブログ
モバイルを重視する Google にとって、モバイル ユーザーがアクセスしやすく、使いやすいサイトが増えるのはとても喜ばしいことです。こうしたサイトがさらに増えるよう、このたび Google では新し・・・続きを読む
(2016-5-19 17:38:00)
2015 年に Google が実施したウェブスパムへの対策
by Google ウェブマスター向け公式ブログ
検索は強力なツールです。場所やデバイスの違いを気にすることなく、いつでも、どこからでもユーザーが様々なコンテンツにアクセスする手助けをします。Google サーチ クオリティ チームでは、関連性が高く・・・続きを読む
(2016-5-11 12:40:00)
WordPress 4.5.2 セキュリティリリース
by 日本語
WordPress 4.5.2 がご利用いただけるようになりました。これは以前のすべてのバージョンに対するセキュリティリリースであり、サイトを今すぐ更新することを強くおすすめします。・・・続きを読む
(2016-5-7 09:16:13)
Advanced Hosting Meetup プログラム : 結果のご報告
by Google ウェブマスター向け公式ブログ
ホスティング サービス運営者のみなさまと、Google 検索と相性の良いサービス運営や、サービス上のスパム サイト対策について情報交換、対策実施を進める Advanced Hosting Meetup・・・続きを読む
(2016-5-2 11:30:00)
WordPress 4.5.1 メンテナンスリリース
by 日本語
12件のバグを修正した WordPress 4.5.1 がご利用いただけるようになりました。・・・続きを読む
(2016-4-27 10:38:26)
WordPress 4.5 “コールマン”
by 日本語
ジャズ・サキソフォーン奏者コールマン・ホーキンスに敬意を表して名付けられた WordPress バージョン 4.5「コールマン」のダウンロードおよび WordPress ダッシュボードからの更新が可能・・・続きを読む
(2016-4-14 12:05:17)
不正なダウンロード ボタンを撲滅するために
by Google ウェブマスター向け公式ブログ
この記事は 2016 年 2 月 3 日に Google Online Security Blog に投稿された記事「No More Deceptive Download Buttons」の翻訳です。・・・続きを読む
(2016-4-12 16:54:00)
WordPress 4.5 リリース候補 2
by 日本語
WordPress 4.5 リリース候補の第2弾 (英語版) がご利用いただけるようになりました。・・・続きを読む
(2016-4-10 15:48:54)
コントリビューターウィークエンド: Global WordPress Translation Day
by 日本語
Global WordPress Translation Day は、WordPress の翻訳に協力したいという新しいコントリビューターの手助けをするために設けられました。4月24日 (日) の日本・・・続きを読む
(2016-4-9 09:36:20)
WordPress 4.5 リリース候補
by 日本語
WordPress 4.5 リリース候補 (英語版) がご利用いただけるようになりました。・・・続きを読む
(2016-3-24 23:46:10)

ここで使っているコードは下記の通りです。2つのRSSフィードしかのせてないですが、もちろんRSSフィードは追加させ表示できます。スタイルシートはサイトに合わせて作成してください。

<?php include_once(ABSPATH . WPINC . '/feed.php');
$rss = fetch_feed(array(
'http://feeds.feedburner.com/WebmasterCentral',
//RSSフィード1

'http://ja.wordpress.org/feed/'
//RSSフィード2
));
if (!is_wp_error( $rss ) ) : 
    $rss->set_cache_duration(1800);
    $rss->init();
    $maxitems = $rss->get_item_quantity(10); 
    $rss_items = $rss->get_items(0, $maxitems); 
    date_default_timezone_set('Asia/Tokyo');
endif;
?>
<dl>
    <?php if ($maxitems == 0) echo '<dt>No items.</dt>';
    else
    foreach ( $rss_items as $item ) : ?>
    <dt>
<a href='<?php echo $item->get_permalink(); ?>' target="_blank"><?php echo $item->get_title(); ?></a><br />
by <?php echo $item->get_feed()->get_title(); ?><br />
<?php echo mb_substr(strip_tags($item->get_description()), 0, 100); ?>・・・<a href='<?php echo $item->get_permalink(); ?>' target="_blank">続きを読む</a>
</dt>
<dd>(<?php echo $item->get_date("Y-n-j H:i:s"); ?>)</dd>
    <?php endforeach; ?>
</dl>

<?php echo mb_substr(strip_tags($item->get_description()), 0, 100); ?>で記事を抜粋して表示してあります。100が文字数になります。そのあとの「・・・」や続きを読むはお好みで付け加えてください。

最終更新日: 2013年3月13日

  • このエントリーをはてなブックマークに追加
  • にほんブログ村 IT技術ブログ WordPressへ
  • ameba
  • addthis
  • Clip to Evernote

複数外部RSSフィードをWordPressで表示の関連記事

複数外部RSSフィードをWordPressで表示” への25件のコメント

  1. ピンバック: あまりにも便利過ぎる”コピペで使える”ワードプレスのスニペット集 | ひとりで

  2. ピンバック: スタジオ・イワノ ウェブデザイン研究所 » Blog Archive » 複数の外部RSSフィードをWordPressで表示する方法

  3. ピンバック: 複数のRSSをまとめて表示する | びよりネット

  4. ピンバック: トップページなどにrssで新着表示する方法 - wordpressのまとめ

  5. 何度もすみませんmm
    結局wordpress記事の方も一緒にRSSフィードして出力する方法で解決致しました。
    お騒がせしてすみませんでした。
    先程のコメントは削除して下さい。
    よろしくお願いします。

    • 解決できてよかったです。
      また何かありましたらお気軽にコメントください。

  6. 「複数外部RSSフィードをWordPressで表示」

    を使用してフィードを表示させています。しかしこれでは、

    ・2011/09/08 タイトル/テストブログ1
    ・2011/09/08 タイトル/テストブログ2

    のように全ておなじ場所に表示されてしまいます。

    これを次のようにサイト別に表示したいのですがどうしたらいいでしょう?つまり、カテゴリ分けのような感じをしたいのです。

    aとbに関するサイトのフィード

    aに関するサイトのフィード

    bに関するサイトのフィード

    どうぞよろしくです。

    • 求めている答えになっているかどうか自信ないですが、この記事で書いてあるように表示したいアドレスの設定で可能だと思います。


      又コードは下記のような形が一つのコードになってますので、同じページに表示させる場合はこのコードを複数設置すれば複数RSSでも単独のRSSでも表示できます。
      <?php include_once(ABSPATH . WPINC . '/feed.php');
      途中省略
      < ?php endforeach; ?>


      aとbに関するサイトのフィード
      <?php include_once(ABSPATH . WPINC . '/feed.php');
      $rss = fetch_feed(array(
      'http://テストブログ1
      ',
      'http://テストブログ2
      ));
      途中省略
      < ?php endforeach; ?>


      aに関するサイトのフィード
      <?php include_once(ABSPATH . WPINC . '/feed.php');
      $rss = fetch_feed('http://テストブログ1');
      途中省略
      < ?php endforeach; ?>


      bに関するサイトのフィード
      <?php include_once(ABSPATH . WPINC . '/feed.php');
      $rss = fetch_feed('http://テストブログ2');
      途中省略
      < ?php endforeach; ?>

      又見本や名もなき通りすがりさんのサイトをご覧させて頂くとより分かりやすかもしれません。

      答えになっているか自信ありませんが、又お気軽にご質問ください。

  7. お返事ありがとうございます。

    実は、今その提示してくださった方法で表示しています。ですが、これだともしフィードからaサイトを削除したいといった場合、「aとbに関するサイトのフィード」と「aに関するサイトのフィード」の2つを削除しないといけなくなり効率が悪いかなと思うのです。

    そこで、書き込むサイトは1箇所で、複数の場所にフィードを表示できれば、1箇所のサイトを削除するだけで、「aとbに関するサイトのフィード」と「aに関するサイトのフィード」の両方を削除でき効率がよくなりますよね?

    このようなやり方できないかなと思いましてスレさせて頂きました。

    やはり少し難しいでしょうか?

    • もしかしたらご希望の方法があるのかも知れませんが、この記事で書いている方法しか私も分かりません(^^;

      力になれなくて申し訳ございません。

  8. 「複数外部RSSフィードをWordPressで表示」
    非常に参考になりました。ありがとうございます。

    そこで一つ質問がございましてコメントさせて頂きました。

    現在私は、wordpress3.2.1を使用中で、
    複数のサイトから『各サイトの最新の1件のみ』を抽出して表示をしたいと考えております。

    fetch_rssを使用し、

    foreach ($rss_url as $key => $value) {
    $rss = fetch_rss($value);
    $maxitems = 1;
    $items[$key] = array_slice($rss->items, 0, $maxitems);
    }

    という形でそれは実現できていたのですが、
    RSSが更新されず、rss.phpを修正しても改善が見られない為、
    こちらのようにfetch_feedを使用したいと思っています。

    こちらで公開されているコードで、RSSの取得自体は上手くいっているのですが、全てのRSSを時系列で並べて、新しいものからmaxitemsの和だけ表示しているので、あるサイトは2つ、3つのRSSが表示され、あるサイトは1つも表示されなかったりします。

    fetch_feedを使用し、各サイトの最新の1件のみを表示させることはできますでしょうか。

    • ここで紹介している記事は関数リファレンス/fetch feed – WordPress Codex 日本語版を元に紹介しているだけなので、更なるコードについては私自身もまだまだ勉強中で質問に関してのお答えが出来ません(^^;

      質問の内容からしたらあむちさんの方が私より詳しいと思います。

      WordPressのフォーラムでご質問されたほうが詳しい方がいらっしゃるかもしれません(^^;

    • 管理人様

      ご回答ありがとうございます^^
      私もPHPを理解しきっているわけではなく、素人同然です><
      皆さんが紹介してくれる知識を継接ぎで利用しているだけなのでこういった問題に当たると解決できずにおります。

      もっと自分で勉強すると共にフォーラム等でも質問をしてみたいと思います。

      こちらのサイトは色々と参考になる情報が多く感謝しております。

      また寄らせて頂きますね!
      ありがとうございました。

  9. 管理人様。

    いえいえとんでもないです。こちらこそ無理なお願いに付き合ってくださりありがとうございます。

    一応、管理人さんの方法で表示できているのでこれで対応してこうと思います。

    また、何かありましたらよろしくお願いします。

    • みなさん色んな使い方をされていることで逆に勉強になります。

      こちらこそ今後ともよろしくお願いします。

  10. あむちさんへ

    こちらこそご質問のおかげで勉強になりました。あむちさんのサイトにも遊びに行きたいんで、次回は是非あむちさんのサイトも紹介してください。

  11. ピンバック: ミシマックス ドット ネット(mishimax.net) » 複数のRSSをまとめて表示する

  12. 管理人様、参考にさせてもらっております。
    これは、アンテナサイトの作成などに使えそうです。

    1つ質問させていただきたいのですが、取得した記事のクリック数・ツイート数などを表示させるには、どうすればいいのでしょうか?
    ヒントなどがあれば教えていただけると助かります、

    • コメントありがとうございます。

      質問された事に対してのお答えが間違っているかもしれませんが、複数の外部RSSフィードを取得した上でそれに対してのクリック数・ツイート数を表示する方法は分かりません(^^;

    • 管理人様、回答ありがとうございます。
      ツイート数については、ループ内に適当にボタンを挿入したところ、何とか動作するようになりました。

      アクセスカウントについては、これから勉強してみます。
      ありがとうございました。

      このブログは、痒いところに手が届く記事を扱っていらっしゃるので、これからも参考にさせてもらいます。

    • 質問に対してのお答えが出来なくて申し訳ございませんでした(^^;

      これからも少しでも役にたつような記事を公開していきますので又遊びにきてください。

  13. ピンバック: WordpressのRSSフィードにサムネイル画像を挿入、別サイトで読み込む方法 | Webデザインのレシピ

  14. ピンバック: はてブ新着記事をタグ指定サムネイルつきの抜粋で表示する | Futurismo

  15. ピンバック: これがしたかった!WordPressのカスタマイズに役立つコードのまとめ | ENJILOG

  16. ピンバック: 外部の複数ブログのRSSを時系列で一覧表示する | Memorandum

コメントを残す

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


*