Ikeda->Weblog();

Ikedaの徒然雑記。

[WP] 続・FlickrRSSプラグインでランダム表示

| 2件のコメント

[WP] 続・FlickrRSSプラグインでランダム表示もう3年近く前になりますが、WordPressのサイドバーにFlickrの画像を表示するプラグイン「FlickrRSS」についての改造記事を書きました。

その後、どのタイミングだったか忘れてしまいましたが、、、多分デザイン変更のタイミングでFlickrウィジェットの表示を止め、そのままFlickrRSSプラグインのことも忘却の彼方に行ってしまってました^^;;

ところが!!

こんな拙いブログも、少しは皆様のお役に立てたんでしょうか、FlickrRSSプラグインの改造箇所についてコメントを頂きました!!!
いやーもう嬉しいやら忘れていた自分が恥ずかしいやら^^;;

早速、最新版のFlickrRSSプラグインをインストールし、覗いてみました^^)b

最新版はバージョン5.1でしょうか、当時のものとはコードも少し変わっているようです(当然っちゃー当然ですね^^;)。以前の記事はバージョンアップに伴いRSS取得できなくなっていたことに対してのパッチでしたが、最新版では問題なくRSSの取得・画像表示が行えています。

中を覗いてみると、以前は

format=_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件を切り出しています。

[php firstline=”138″]
if (!($rss = $this->getRSS($settings))) return;
# specifies number of pictures
$items = array_slice($rss->items, 0, $settings[‘num_items’]);
[/php]

ってことで、修正内容は前回と同じで、

[php firstline=”140″]
// 元コードをコメントアウト
// $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]);
}
}
[/php]

という感じになります。

ついでに、プラグインの設定画面に「Latest(最新)」「Random(ランダム)」の表示モードを追加し、切り替えられるようにしてみました^^)b
↓に修正済みのファイルアーカイブを置いておきますので、よろしければお使い下さい。

2件のコメント

  1. ピンバック: Flickrに投稿した写真を表示するプラグイン「FlickrRSS」 | 祭りのあと

  2. ピンバック: Flickrに投稿した写真を表示するプラグイン「FlickrRSS」 | 祭りのあと

コメントを残す