WordPressにアメブロの新着記事のRSSを取得して表示、さらにPR記事を除外(2013年版)[WordPress使えそうなスニペットシリーズ]

古くて今は使えない記事が検索上位に出ているのをなんとかしたいシリーズ第2弾です。

Googleで「WordPress アメブロ RSS」と検索した時、上位に表示される記事の多くが、今のバージョンではもう存在しないrss.phpをincludeしていたり、既に非推奨になっているfetch_rss関数を使ったものを紹介しています。
そして、その記事を見て実際にやってみたけど上手くいかないということで取引先様より、コード改善の仕事が回ってきたのがこの記事を書くきっかけです。

前回、新着記事表示の件で長々と考えを書きましたが、「ああ、こっちもなんとかしなければ」という変な使命感に駆られました。

実はRSS取得については以前、「WordPressでRSSフィードを取得するwp_rssやfetch_rssが非推奨だった件」という記事でfetch_feedを使う方法を紹介しました。
初心者さんはわかりやすい個人のブログ記事だけから情報を探すことに終始しがちだけど、やっぱCodexの中に答えがあったりすることも多いからちゃんと読んだらいいんじゃね」ということを書いたのですが、やはりそうは言ってもCodexよりも個人ブログの方を参考にしたい人の気持ちもすごくよく分かります。

そこで、今回は検索されやすいキーワード、「アメブロ」「アメーバブログ」に特化して、PR記事を除外しつつ新着記事を任意の件数取得する方法を考えてみました。

参考にしたのはこの辺りの情報です。

とくに「Wordpress・Premire・Aftereffects備忘録」さんの記事はPRを抜いた時の記事件数の処理まで触れてあり、考え方の参考にさせていただきました。
こちらの記事ではclass-simplepie.phpをincludeしてるんですが、もう少しシンプルにしてfetch_feedを使った方法に直してみました。

PR記事を抜いても、表示される件数が減らないようにする

多く紹介されているアメブロRSS取得+PR除外記事では、表示件数を「5件」と指定してあっても、PR記事を含めたカウントになるため実際には3件とか4件しか表示されない、ということが起こります。

それを改善したのが以下の方法です。

参考記事にならって、「実際に表示したい件数($display_posts_count)」よりもあらかじめ2~3件多めに取得($get_posts_count)しておいて、「実際に表示したい件数($display_posts_count)」が、表示処理された件数を超えないようにチェック、超えた時点でループを抜けるようにしてみました。

特に問題がなければ、3~5行目の数字やURLを変えるだけでOKです。
ul>li要素でマークアップしていますが、このあたりはご自身で変更していただければと思います。

さいごに

なかなか、「何が正しい、何が間違っているのかなんて」わからないものですよね。僕はちっぽけな存在ですから。
なので、記事の掲載日を確認し、古かった場合は特に念入りに裏を取るようにしましょう。
この世界に踊り続けなくてもいいように。
(元ネタが古くてすんません。最近カラオケ行ったので…)

コメント / トラックバック 2 件

:uchi| 2013/10/15 16:24

初めまして、いつも参考にさせていただいております。

当方はアメブロではなく、WPのマルチサイトで作成しており、
その複数のサイトからRSSを取得したいのですが、

$feed = fetch_feed(array
(‘http://ドメイン/A’,
‘http://ドメイン/B’,
‘http://ドメイン/C’)); //取得したいRSS

にしてみると、最初の「http://ドメイン/A」のサイトのフィードが3件表示されるだけでした。
色々してみても、解決策が見当たらなく、コメントさせていただきました。
教えていただけませんでしょうか?

:mypacecreator| 2013/10/15 16:58

uchiさん、コメントありがとうございます。
まず、このページの記事はアメブロ用のPR除外に関する記述が入っていますので、WordPressのRSSを取る場合はもう少しシンプルなこちらの記事を参考にしてもらうといいと思います。

https://mypacecreator.net/blog/archives/1296

さて、arrayで複数のフィードを指定した場合ですが、
もしかして、最新の記事がすべてhttp://ドメイン/Aのもの、ということはありませんか?

今回ご紹介している取得方法は、A/B/Cのすべてを時系列順に並べたうえで最新の3件なら3件を取ってきているので、最近ブログAしか更新してないな~、とかだとAの記事しか出ないはずです。

そうじゃなくて、時系列順はバランスよく出るはずなのに表示がおかしい場合は、コメントに書いてもらったところ以外の記述がおかしいかもしれないので、差し支えなければ、追記した部分を省略せずにご提示ください。

コメントをどうぞ

メールアドレス (必須・公開されません)
コメント本文

  • スパム・迷惑コメント投稿防止のため、メールアドレスの入力が必須ですが、公開はされません。何卒ご協力のほどお願いいたします。
  • 投稿いただいたコメントは管理者のチェック後掲載しておりますので、即時には反映されません。
  • 記載内容に関する批判や間違いの指摘などはそのまま掲載する方針ですが、投稿内容と無関係な誹謗中傷、一方的な罵詈雑言の場合は削除させていただく可能性があります。
  • 通常業務の合間にコメントチェックをしておりますので、すべてのコメントへのお返事が出来ない場合もございます。あらかじめご了承ください。
  • 管理人個人への連絡等は、コメント欄ではなくコンタクトフォームをご利用ください。

書籍を執筆しました

WordPress 標準デザイン講座【Version 4.x対応】


翔泳社さんより、2015/02/27発売しました。2年経ちますのでもう賞味期限切れだとは思いますが、一応実績として...

寄付歓迎(・ω<)☆

当ブログの記事があなたの役に立ったら、気が向いたらでいいのでドネーションいただけると更新の励みになります!
気が向いた方はこちらから

ブログ内検索