MT3.3b1 - タグ検索結果のURLをシンプルに
これまでmt-xsearch + Tagwireでタグの動的検索を実現していたのですが、MT3.3b1では標準のmt-search.cgiがタグ検索をサポートしているようです。
クエリストリングスは以下でした。
http://yourhost/mt/mt-search.cgi?tag=foo&blog_id=1
このタグ検索結果URLを
http://myhost/tag/foo
に変えるには、blogのルート(この場合http://myhost/直下)に.htaccessを設置します。
内容は以下で多分。(blog_idは確認して正しいものに直す)
RewriteEngine on
RewriteRule ^tag/(.*)$ http://myhost/mt/mt-search.cgi?blog_id=1&tag=$1 [P,L]
テンプレート側は以下のように書き換えればいいんじゃないかと思います。
<a href="<$MTBlogURL$>tag/<$MTTagName encode_url="1">"><$MTTagName></a>
あとどうやらmt-searchのデフォルトは大文字小文字を区別しないようです。標準のTagging機能は大文字小文字を区別しているので、ちょっと注意が必要かもしれません。
※2006/07/01追記
Tagが「Movable Type」など半角スペースを含む場合に、上記やり方だとサーバエラーができます。
以前にこちらのエントリーで紹介した現象と全く同じで、解決方法も同じなんだろうけど、TagwireをOFFにしてしまっているので、encode_url_plusをなんとかしなければいけないです。
とりあえず、Ogawa::Memorandaさんが公開している、TagSupplementals Pluginの37行目あたりに
MT::Template::Context->add_global_filter('encode_urlplus' => \&encode_urlplus);
最後の1;の前くらいに
sub encode_urlplus {
my $s = $_[0];
return $s unless $_[1];
require MT::Util;
$s =~ tr/ /+/;
MT::Util::encode_url($s);
}
を追加してアップすれば、encode_url_plusが使えます。
この場合テンプレート側は以下のように書き換えます。
<a href="<$MTBlogURL$>tag/<$MTTagName encode_urlplus="1">"><$MTTagName></a>
このエントリーのトラックバックURL
http://www.trapple.net/blog/mt/mt-tb.cgi/39
コメント
3.3を導入したら是非やりたいです!
投稿者: yoshidam | 2006年06月26日 02:02