ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

WordPressコミュのUltimate Tag Warriorでの複数タグによる絞り込みについて

  • mixiチェック
  • このエントリーをはてなブックマークに追加
みなさんのお知恵を拝借したく、書き込みさせていただきます。

プラグイン「Ultimate Tag Warrior」を用いて「日本語タグを複数使ってのエントリーの絞り込み」をナビゲーションとして実装したいのですが、WinIE6ではうまく動作してくれません(FirefoxやSafariでは期待通りに動作します)。どなたか解決策をご存知の方はいらっしゃいませんでしょうか。

設置したテストサイト(http://shokuto.ciao.jp/wptest/)での実例で説明いたしますと、「スポーツ選手」「サッカー」の順でタグを選択すると、WinIE6でのみ「該当するエントリーがゼロ」という結果が返ってしまいます(実際は3つのエントリーが該当します)。

タグ1つのみの選択の場合や、複数タグでもURLエンコードされた文字列を直接指定すると期待通りに動きます。また「男」や「女」から絞り込み始めた場合は上手く動作するようですので、IE用に何か対策をしなければならないのかもしれませんが、私の知識が不十分で解決策を探しきれず困っています。

同種の事例や解決策をご存知の方がおられましたら、コメントいただけませんでしょうか。些細なヒントでも構いませんので、何卒よろしくお願いします。

コメント(6)

タグのリンクURLに、URLエンコードされた文字列と、そうでない文字列を混在して生成してしまっているのが、直接の原因ですよね?例えば、

http://shokuto.ciao.jp/wptest/index.php?tag=スポーツ選手+%E7%8F%BE%E5%BD%B9

みたいな。
ちなみにFirefoxはそのようなURLを、ブラウザがURLエンコードしてから処理するので正しく動くようです。ブラウザのソースを表示してHTMLを確認いただけるとよく分かります。 あるいは、タグのリンクをを右クリックして、メニューの「ショートカットをコピー」をして、メモ帳とかにはり付けてみる、とか。

そんなわけで、PHPプログラムのタグのリンクを生成している部分の問題だと思われます。これ以上はちょっとソースを読む必要がありそうですが、適当な場所にurlencode関数を書き加えてやれば直りそうな気がします。
http://www.php.net/manual/ja/function.urlencode.php

ちなみに私も、最近Ultimate Tag Warriorを似たような環境で導入してみたばかりで、勝手が分からないのが正直なところで‥‥。もうちょっと研究してみます。
わくたまさん、早速のコメントありがとうございます。

URLエンコードされた文字列とされていない文字列が混在している点は、私も気になっていました。tagのリンク部分がきちんとURLエンコードされているかどうか、プラグインのソースを確認しているのですが、どうも問題が発見できていません。

引き続きソースの検証を続けていきますが、また何か気づかれた点がありましたらよろしくお願いします。
わくたまさんのご指摘の通り、urlencode関数の追加で問題が解決できました。具体的には「ultimate-tag-warrior-core.php」の1127行目に「$tags = urlencode($tags);」と書き加えますと、クエリがURLエンコードされてIEでも正常に動くようです。

PHPは初心者なのでベストな解決策がどうかは定かではありませんが、とりあえず動いているので良しとします。わくたまさんをはじめ、みなさんありがとうございました。
> urlencode関数の追加で問題が解決できました

あ、なるほど。結局、質問に答えるつもりが、逆に教えられてしまいました。。。
でもこれは、プラグイン側の実装が微妙ですよねぇ。半角英数なら偶然動くというだけで、これはプラグインのバグだと思います。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

WordPress 更新情報

WordPressのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング