複数外部RSSフィードを表示する方法はGoogleなどで検索すると色んな方法がありますが、ここではWordPressの関数リファレンス/fetch feedに紹介してあるコードを元に色んな形で複数外部RSSフィードをまとめた一覧を表示させてみたいと思います。
関数リファレンス/fetch feedで紹介されているコード
まずはGoogle ウェブマスター向け公式ブログのRSSフィードを関数リファレンス/fetch feedで紹介されているコードをそのまま使い表示してみます。
- Google ウェブマスターから Google 検索セントラルへ
- Google 画像検索に画像のライセンス情報を表示する
- リッチリザルトと Search Console に関するよくある質問
- ベータ版リッチリザルト テストの終了
- Google でのスパムレポートの利用方法
ここでは1つのサイトのRSSフィードだけを表示しています。でもこれだと何だか寂しいので、ブログパーツでよくあるようにサイトのタイトル、記事のタイトル、日付の表示を追加して表示させてみます。
サイトのタイトルを表示させ複数RSSフィードを日付順に表示する
下記のようなスタイルも関数リファレンス/fetch feedで紹介されているコードを追加変更するだけで簡単に作成できます。
-
WordPress.org 日本語
WordPress 6.3.1 メンテナンスリリース - (2023-8-31 00:53:16)
-
WordPress.org 日本語
WordPress 6.3「ライオネル」 - (2023-8-9 23:46:53)
-
WordPress.org 日本語
WordPress 6.3 リリース候補版 3 - (2023-8-2 13:50:54)
-
WordPress.org 日本語
WordPress 6.3 リリース候補版 2 - (2023-7-27 06:58:23)
-
WordPress.org 日本語
WordPress 6.3 リリース候補版 1 - (2023-7-20 06:33:52)
-
WordPress.org 日本語
WordPress 6.3 ベータ 4 - (2023-7-12 23:16:32)
-
WordPress.org 日本語
WordPress 6.3 ベータ 3 - (2023-7-5 20:25:09)
-
WordPress.org 日本語
WordPress 6.3 ベータ 2 - (2023-7-3 22:48:06)
-
WordPress.org 日本語
WordPress 6.2.2 セキュリティリリース - (2023-5-22 12:38:08)
-
WordPress.org 日本語
WordPress 6.2.1 メンテナンスとセキュリティのリリース - (2023-5-17 14:07:37)
ここで使っているコードは下記の通りです。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時間かかって表示されるみたいです。ですのでキャッシュ速度をここで速めて表示されるようにしてあります。
- キャッシュ速度に関してはEverything is Musicさんの「非推奨の fetch_rss() を使わずに WordPress で外部の RSS Feed を取得する方法」に詳しく書いてありました。
- set_cache_duration()のコードSimplePie Documentation
- 日付の表示はこの他にもあります。WordPressの日付と時刻の書式に詳しく書いてあります。
RSSフィードの記事を抜粋し文字数を指定して表示する
今度は先ほどのRSSフィード一覧の記事を抜粋し文字数を指定して表示してあります。
-
WordPress 6.3.1 メンテナンスリリース
by WordPress.org 日本語
以下は、Jb Audras による WordPress.org 公式ブログの記事「WordPress 6.3.1 Maintenance Release」を訳したものです。 誤字脱字誤訳などありました・・・続きを読む - (2023-8-31 00:53:16)
-
WordPress 6.3「ライオネル」
by WordPress.org 日本語
以下は、Matias Ventura による WordPress.org 公式ブログの記事「WordPress 6.3 “Lionel”」を訳したものです。 誤字脱字誤訳などありましたらフォーラムまで・・・続きを読む - (2023-8-9 23:46:53)
-
WordPress 6.3 リリース候補版 3
by WordPress.org 日本語
以下は、Jonathan Pantani が書いた WordPress.org 公式ブログの記事「WordPress 6.3 RC3」を訳したものです。 誤字脱字誤訳などありましたらフォーラムまでお知・・・続きを読む - (2023-8-2 13:50:54)
-
WordPress 6.3 リリース候補版 2
by WordPress.org 日本語
以下は、Meher Bala が書いた WordPress.org 公式ブログの記事「WordPress 6.3 Release Candidate 2」を訳したものです。 誤字脱字誤訳などありました・・・続きを読む - (2023-7-27 06:58:23)
-
WordPress 6.3 リリース候補版 1
by WordPress.org 日本語
以下は、Dan Soschin が書いた WordPress.org 公式ブログの記事「WordPress 6.3 Release Candidate 1」を訳したものです。 誤字脱字誤訳などありまし・・・続きを読む - (2023-7-20 06:33:52)
-
WordPress 6.3 ベータ 4
by WordPress.org 日本語
以下は、Dan Soschin が書いた WordPress.org 公式ブログの記事「WordPress 6.3 Beta 4」を訳したものです。 誤字脱字誤訳などありましたらフォーラムまでお知らせ・・・続きを読む - (2023-7-12 23:16:32)
-
WordPress 6.3 ベータ 3
by WordPress.org 日本語
以下は、Dan Soschin が書いた WordPress.org 公式ブログの記事「WordPress 6.3 Beta 3」を訳したものです。 誤字脱字誤訳などありましたらフォーラムまでお知らせ・・・続きを読む - (2023-7-5 20:25:09)
-
WordPress 6.3 ベータ 2
by WordPress.org 日本語
以下は、Dan Soschin が書いた WordPress.org 公式ブログの記事「WordPress 6.3 Beta 2」を訳したものです。 誤字脱字誤訳などありましたらフォーラムまでお知らせ・・・続きを読む - (2023-7-3 22:48:06)
-
WordPress 6.2.2 セキュリティリリース
by WordPress.org 日本語
以下の内容は WordPress.org 公式ブログの記事「WordPress 6.2.2 Security Release」を日本語に訳したものです。 誤字脱字、誤訳などありましたらフォーラムまでお・・・続きを読む - (2023-5-22 12:38:08)
-
WordPress 6.2.1 メンテナンスとセキュリティのリリース
by WordPress.org 日本語
以下の内容は WordPress.org 公式ブログの記事「WordPress 6.2.1 Maintenance & Security Release」を日本語に訳したものです。 誤字脱字・・・続きを読む - (2023-5-17 14:07:37)
ここで使っているコードは下記の通りです。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が文字数になります。そのあとの「・・・」や続きを読むはお好みで付け加えてください。
参考記事:関数リファレンス/fetch feed
最終更新日: 2013年3月13日
ピンバック: あまりにも便利過ぎる”コピペで使える”ワードプレスのスニペット集 | ひとりで
ピンバック: スタジオ・イワノ ウェブデザイン研究所 » Blog Archive » 複数の外部RSSフィードをWordPressで表示する方法
ピンバック: 複数のRSSをまとめて表示する | びよりネット
ピンバック: トップページなどにrssで新着表示する方法 - wordpressのまとめ
何度もすみませんmm
結局wordpress記事の方も一緒にRSSフィードして出力する方法で解決致しました。
お騒がせしてすみませんでした。
先程のコメントは削除して下さい。
よろしくお願いします。
解決できてよかったです。
また何かありましたらお気軽にコメントください。
「複数外部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; ?>
又見本や名もなき通りすがりさんのサイトをご覧させて頂くとより分かりやすかもしれません。
答えになっているか自信ありませんが、又お気軽にご質問ください。
お返事ありがとうございます。
実は、今その提示してくださった方法で表示しています。ですが、これだともしフィードからaサイトを削除したいといった場合、「aとbに関するサイトのフィード」と「aに関するサイトのフィード」の2つを削除しないといけなくなり効率が悪いかなと思うのです。
そこで、書き込むサイトは1箇所で、複数の場所にフィードを表示できれば、1箇所のサイトを削除するだけで、「aとbに関するサイトのフィード」と「aに関するサイトのフィード」の両方を削除でき効率がよくなりますよね?
このようなやり方できないかなと思いましてスレさせて頂きました。
やはり少し難しいでしょうか?
もしかしたらご希望の方法があるのかも知れませんが、この記事で書いている方法しか私も分かりません(^^;
力になれなくて申し訳ございません。
「複数外部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を理解しきっているわけではなく、素人同然です><
皆さんが紹介してくれる知識を継接ぎで利用しているだけなのでこういった問題に当たると解決できずにおります。
もっと自分で勉強すると共にフォーラム等でも質問をしてみたいと思います。
こちらのサイトは色々と参考になる情報が多く感謝しております。
また寄らせて頂きますね!
ありがとうございました。
管理人様。
いえいえとんでもないです。こちらこそ無理なお願いに付き合ってくださりありがとうございます。
一応、管理人さんの方法で表示できているのでこれで対応してこうと思います。
また、何かありましたらよろしくお願いします。
みなさん色んな使い方をされていることで逆に勉強になります。
こちらこそ今後ともよろしくお願いします。
あむちさんへ
こちらこそご質問のおかげで勉強になりました。あむちさんのサイトにも遊びに行きたいんで、次回は是非あむちさんのサイトも紹介してください。
ピンバック: ミシマックス ドット ネット(mishimax.net) » 複数のRSSをまとめて表示する
管理人様、参考にさせてもらっております。
これは、アンテナサイトの作成などに使えそうです。
1つ質問させていただきたいのですが、取得した記事のクリック数・ツイート数などを表示させるには、どうすればいいのでしょうか?
ヒントなどがあれば教えていただけると助かります、
コメントありがとうございます。
質問された事に対してのお答えが間違っているかもしれませんが、複数の外部RSSフィードを取得した上でそれに対してのクリック数・ツイート数を表示する方法は分かりません(^^;
管理人様、回答ありがとうございます。
ツイート数については、ループ内に適当にボタンを挿入したところ、何とか動作するようになりました。
アクセスカウントについては、これから勉強してみます。
ありがとうございました。
このブログは、痒いところに手が届く記事を扱っていらっしゃるので、これからも参考にさせてもらいます。
質問に対してのお答えが出来なくて申し訳ございませんでした(^^;
これからも少しでも役にたつような記事を公開していきますので又遊びにきてください。
ピンバック: WordpressのRSSフィードにサムネイル画像を挿入、別サイトで読み込む方法 | Webデザインのレシピ
ピンバック: はてブ新着記事をタグ指定サムネイルつきの抜粋で表示する | Futurismo
ピンバック: これがしたかった!WordPressのカスタマイズに役立つコードのまとめ | ENJILOG
ピンバック: 外部の複数ブログのRSSを時系列で一覧表示する | Memorandum