[WP] 続・FlickrRSSプラグインでランダム表示
もう3年近く前になりますが、WordPressのサイドバーにFlickrの画像を表示するプラグイン「FlickrRSS」についての改造記事を書きました。
その後、どのタイミングだったか忘れてしまいましたが、、、多分デザイン変更のタイミングでFlickrウィジェットの表示を止め、そのままFlickrRSSプラグインのことも忘却の彼方に行ってしまってました^^;;
ところが!!
こんな拙いブログも、少しは皆様のお役に立てたんでしょうか、FlickrRSSプラグインの改造箇所についてコメントを頂きました!!!
いやーもう嬉しいやら忘れていた自分が恥ずかしいやら^^;;
早速、最新版のFlickrRSSプラグインをインストールし、覗いてみました^^)b
最新版はバージョン5.1でしょうか、当時のものとはコードも少し変わっているようです(当然っちゃー当然ですね^^;)。以前の記事はバージョンアップに伴いRSS取得できなくなっていたことに対してのパッチでしたが、最新版では問題なくRSSの取得・画像表示が行えています。
中を覗いてみると、以前は
format=rss_200という部分をformat=rssに変更すると、通常のRDFでフィード取得できるようになりました(^^)v
とありますが、現在はformat=rss_200のままで取得OKのようです。Flickr側の仕様なのかなー。
しかしながら、表示される画像は以前と変わらず、最新のn件ということに変更は無いようです。RSSベースですから最新のものを対象とするのは妥当なのかもしれません。
が、そこはそこ。どうせならランダム表示させたいところです。ちょっと見てみましょう(^^)b
flickrRSSプラグインの本体は、WordPressのプラグインディレクトリの直下にある flickrrss.php です。例えば、WordPressを
/home/blog/htdocs
というディレクトリにインストールしてある場合、プラグインディレクトリは
/home/blog/htdocs/wp-content/plugins
になりますので、このディレクトリにある flickrrss.php を修正します。
さて、flickrrss.php の140行目。
ばっちり前回と同じく、array_slice で取得したRSSの先頭からn件を切り出しています。
if (!($rss = $this->getRSS($settings))) return; # specifies number of pictures $items = array_slice($rss->items, 0, $settings['num_items']);
ってことで、修正内容は前回と同じで、
// 元コードをコメントアウト
// $items = array_slice($rss->items, 0, $settings['num_items']);
// 取得したRSSからランダムにnum_items件の配列キーを取得
$rand_keys = array_rand($rss->items, $settings['num_items']);
if ($settings['num_items'] <= 1) {
$items[0] = $rss->items[$rand_keys];
}
else {
// ランダムに取得したキーを元に、表示する画像を決定
foreach ($rand_keys as $key) {
array_push($items, $rss->items[$key]);
}
}
という感じになります。
ついでに、プラグインの設定画面に「Latest(最新)」「Random(ランダム)」の表示モードを追加し、切り替えられるようにしてみました^^)b
↓に修正済みのファイルアーカイブを置いておきますので、よろしければお使い下さい。
- flickrRSS.zip version-20090910
(5.91 KB bytes, md5sum:{md5sum})


3月 20th, 2010 at 05:27
[...] あと、表示方法は「投稿
5月 15th, 2010 at 05:27
[...] あと、表示方法は「投稿順」なのですが、Ikeda->Weblog() » [WP] 続・FlickrRSSプラグインでランダム表示でランダムに写真を表示させる方法が紹介されてますので、参考にしてみて下さい。 [...]