Go for it!

モーターサイクルと自転車とキャンプの日々。

Flickr Tagバグってるじゃん!

wordpressのFlickr Tagプラグイン、タグのAND検索出来ないじゃん! 条件設定する前に置換かけちゃダメっしょ:-(

// いきなり置換
$tags = str_replace("&", ",", $tags);
(中略)
// ここで評価!
if(strpos($tags, "&") > 0) {
  $params['tag_mode'] = "all";
  $params['tags'] = $tags;
} else
  $params['tag_mode'] = "any";

しょうがないのでパッチを作りました。

--- flickr-tag.php-orig 2007-11-24 09:50:58.000000000 -0800
+++ flickr-tag.php      2007-11-24 10:44:10.000000000 -0800
@@ -113,8 +113,6 @@
                                $user = null;
                        }
 
-                       $tags = str_replace("&", ",", $tags);
-
                        $nsid = null;
                        if($user) {
                                $params = array(
@@ -131,18 +129,21 @@
                                $nsid = $r['user']['nsid'];
                        }
 
+                       if (eregi("&", $tags)) {
+                               $tag_mode = "all";
+                               $temparray = explode("&", $tags);
+                               $tags = str_replace("#038;", "", implode(",", $temparray));
+                       } else {
+                               $tag_mode = "any";
+                       }
+
                        $params = array(
                                'method'                => 'flickr.photos.search',
                                'tags'                  => $tags,
+                               'tag_mode'              => $tag_mode,
                                'format'                => 'php_serial'
                        );
 
-                       if(strpos($tags, "&") > 0) {
-                               $params['tag_mode'] = "all";
-                               $params['tags'] = $tags;
-                       } else
-                               $params['tag_mode'] = "any";
-
                        if($nsid)
                                $params['user_id'] = $nsid;
 

“&"を”,“に置換すると”,#038;“になってしまうのですが、この化け方は何なんでしょう?グーグルさまに訊いても見つかりませんでした。