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

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

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

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

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

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

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

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

日本語
WordPress 5.2 ベータ 3
(2019-4-13 12:06:24)
日本語
WordPress 5.2 ベータ2
(2019-4-13 11:31:27)
日本語
WordPress 5.2 ベータ1
(2019-4-4 17:41:08)
Google ウェブマスター向け公式ブログ
タイトル: 検索スパムの 2018 年の傾向 – ウェブスパム レポート 2018
(2019-4-3 18:13:00)
日本語
PHP 最低必須バージョンの変更
(2019-4-3 10:48:43)
Google ウェブマスター向け公式ブログ
ウェブサイトのトラフィックが正規 URL に統合されます
(2019-3-26 12:43:00)
Google ウェブマスター向け公式ブログ
Search Console の新機能ドメイン プロパティをご紹介します
(2019-3-20 11:00:00)
Google ウェブマスター向け公式ブログ
ウェブページの最適な日付を Google 検索に知らせるには
(2019-3-12 10:00:00)
Google ウェブマスター向け公式ブログ
Google 検索のイベントを沖縄と福岡で開催します
(2019-3-7 18:06:00)
Google ウェブマスター向け公式ブログ
新しい Search Console で重大な課題に取り組みましょう ~ 今後のロードマップのご紹介
(2019-3-1 17:00:00)

ここで使っているコードは下記の通りです。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フィード一覧の記事を抜粋し文字数を指定して表示してあります。

WordPress 5.2 ベータ 3
by 日本語
以下は、Jonathan Desrosiers が書いた WordPress.org 公式ブログの記事、「Wo […]・・・続きを読む
(2019-4-13 12:06:24)
WordPress 5.2 ベータ2
by 日本語
以下は、Gary Pendergastが書いた WordPress.org 公式ブログの記事、「WordPre […]・・・続きを読む
(2019-4-13 11:31:27)
WordPress 5.2 ベータ1
by 日本語
以下は、Josephaが書いた WordPress.org 公式ブログの記事、「WordPress 5.2 B […]・・・続きを読む
(2019-4-4 17:41:08)
タイトル: 検索スパムの 2018 年の傾向 – ウェブスパム レポート 2018
by Google ウェブマスター向け公式ブログ
Google は、あらゆる検索に対して最高品質の結果を提供することを目指しています。この取り組みの一環として、Google では、いわゆる「ウェブスパム」という不正行為により検索体験、コンテンツ、・・・続きを読む
(2019-4-3 18:13:00)
PHP 最低必須バージョンの変更
by 日本語
今月末リリース予定の WordPress 5.2 では PHP の最低必須バージョンを更新し、PHP 5.6.20 以降が必須となる見通しです。・・・続きを読む
(2019-4-3 10:48:43)
ウェブサイトのトラフィックが正規 URL に統合されます
by Google ウェブマスター向け公式ブログ
現在 Search Console の検索パフォーマンス レポートでは Google 検索で表示された URL に、関連するすべての指標が記載されています。この仕様では詳細なデータがわかる反面、プロパ・・・続きを読む
(2019-3-26 12:43:00)
Search Console の新機能ドメイン プロパティをご紹介します
by Google ウェブマスター向け公式ブログ
Google では、Search Console でウェブサイトを包括的に管理するため、すべてのバージョンのウェブサイト(http、https、www あり、www なし)を Search Conso・・・続きを読む
(2019-3-20 11:00:00)
ウェブページの最適な日付を Google 検索に知らせるには
by Google ウェブマスター向け公式ブログ
Google の検索結果ではリストの横に日付が表示されることがあります。今回は、この日付がどのように判断されるのかなど、ウェブマスターの皆様から寄せられる一般的な質問にお答えし、日付の精度向上に役立つ・・・続きを読む
(2019-3-12 10:00:00)
Google 検索のイベントを沖縄と福岡で開催します
by Google ウェブマスター向け公式ブログ
2016 年から 2018 年まで 3 年間、Google の検索チームと、ウェブマスターやサイト運営に関わる皆さんを結ぶことを目的に、東京や大阪で Google 検索のイベントを開催してまいりました・・・続きを読む
(2019-3-7 18:06:00)
新しい Search Console で重大な課題に取り組みましょう ~ 今後のロードマップのご紹介
by Google ウェブマスター向け公式ブログ
Google では昨年、さまざまな新機能を備えた新しい Search Console を正式版としてリリース(英語)しました。新しい Search Console では、サイト所有者の皆様がより重大な・・・続きを読む
(2019-3-1 17:00:00)

ここで使っているコードは下記の通りです。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

コメントを残す

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


*