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

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

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

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

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

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

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

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

WordPress.org 日本語
WordPress 6.5リリース候補版3
(2024-3-20 18:03:43)
WordPress.org 日本語
WordPress 6.5リリース候補版2
(2024-3-13 23:21:47)
WordPress.org 日本語
WordPress 6.5リリース候補版1
(2024-3-7 13:57:16)
WordPress.org 日本語
WordPress 6.5 ベータ 3
(2024-2-28 07:57:26)
WordPress.org 日本語
WordPress 6.5 ベータ 2
(2024-2-21 23:23:18)
WordPress.org 日本語
WordPress 6.5 ベータ 1
(2024-2-14 23:48:46)
WordPress.org 日本語
WordPress 6.4.3 メンテナンスとセキュリティのリリース
(2024-1-31 18:15:13)
WordPress.org 日本語
State of the Word 2023 の総括
(2023-12-12 10:39:57)
WordPress.org 日本語
WordPress 6.4.2 メンテナンスとセキュリティのリリース
(2023-12-8 17:42:35)
WordPress.org 日本語
警報: WordPress セキュリティチームなりすまし詐欺
(2023-12-7 18:20:56)

ここで使っているコードは下記の通りです。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 6.5リリース候補版3
by WordPress.org 日本語
以下は WordPress.org 公式ブログの記事「WordPress 6.5 Release Candidate 3」を訳したものです。 誤字脱字誤訳などありましたらフォーラムまでお知らせください・・・続きを読む
(2024-3-20 18:03:43)
WordPress 6.5リリース候補版2
by WordPress.org 日本語
以下は WordPress.org 公式ブログの記事「WordPress 6.5 Release Candidate 2」を訳したものです。 誤字脱字誤訳などありましたらフォーラムまでお知らせください・・・続きを読む
(2024-3-13 23:21:47)
WordPress 6.5リリース候補版1
by WordPress.org 日本語
最初の WordPress 6.5リリース候補版1 (RC1版) をダウンロードし、テストする準備が整いました。 このバージョンの WordPress は未だ開発途上の段階にあります。本稼働中のウェブ・・・続きを読む
(2024-3-7 13:57:16)
WordPress 6.5 ベータ 3
by WordPress.org 日本語
以下は WordPress.org 公式ブログの記事「WordPress 6.5 Beta 3」を訳したものです。 誤字脱字誤訳などありましたらフォーラムまでお知らせください。 WordPress 6・・・続きを読む
(2024-2-28 07:57:26)
WordPress 6.5 ベータ 2
by WordPress.org 日本語
以下は WordPress.org 公式ブログの記事「WordPress 6.5 Beta 2」を訳したものです。 誤字脱字誤訳などありましたらフォーラムまでお知らせください。 WordPress 6・・・続きを読む
(2024-2-21 23:23:18)
WordPress 6.5 ベータ 1
by WordPress.org 日本語
以下は WordPress.org 公式ブログの記事「WordPress 6.5 Beta 1」を訳したものです。 誤字脱字誤訳などありましたらフォーラムまでお知らせください。 WordPress 6・・・続きを読む
(2024-2-14 23:48:46)
WordPress 6.4.3 メンテナンスとセキュリティのリリース
by WordPress.org 日本語
以下は WordPress.org 公式ブログの記事「WordPress 6.4.3 – Maintenance and Security release」を訳したものです。 誤字脱字誤訳などありまし・・・続きを読む
(2024-1-31 18:15:13)
State of the Word 2023 の総括
by WordPress.org 日本語
以下は WordPress.org 公式ブログの記事「State of the Word 2023 Recap」を訳したものです。 誤字脱字誤訳などありましたらフォーラムまでお知らせください。 12月・・・続きを読む
(2023-12-12 10:39:57)
WordPress 6.4.2 メンテナンスとセキュリティのリリース
by WordPress.org 日本語
以下は WordPress.org 公式ブログの記事「WordPress 6.4.2 Maintenance & Security Release」を訳したものです。 誤字脱字誤訳などありま・・・続きを読む
(2023-12-8 17:42:35)
警報: WordPress セキュリティチームなりすまし詐欺
by WordPress.org 日本語
以下は WordPress.org 公式ブログの記事「Alert: WordPress Security Team Impersonation Scams」を訳したものです。 誤字脱字誤訳などありまし・・・続きを読む
(2023-12-7 18:20:56)

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

Detarame へ返信する コメントをキャンセル

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


*