今日はwordpressで記事にたくさんタグをつけるという作業をしなければならなかった。ヒヨコのオスメスを分ける仕事もあるので、タグを入力する作業があってもおかしくないぞ。
知っている人は知っているが、wordpressで日本語タグを使う場合は要注意だ。現時点での最新版2.6でも同じ。バグの現象は書くとめんどくさいが、wordpressを触れば一発でおかしいところに気がつく。詳しくはYuriko.Net » WordPress で日本語タグ重複問題解決パッチ案、hiromasa.another :o) » Blog Archive » WordPress 2.5 のタグ重複について追う、わーどぷれすっ! » タグ重複バグのその後などを参照。
Yurikoさんとmtekkさんとjyoshidaさんのおかげで2.5用パッチ#6313が作られ、その後開発メンバーのryanが2.7で採用されるであろうパッチ#6593を作った。このryanパッチは2.6に当てても動く。DBのバージョンアップ*1が必要なので、お手軽とはいいがたいが。
さて、話は大量の記事に平均3個ほどのタグをつける作業に戻る。
2.6にryanパッチを当てて、スラッグ付き日本語タグOKな状態で作業を続けていた。そして、タグの管理画面を見ると、なんと日本語タグが重複していたのだ!しかも、複数つけたタグのうち、最初のタグ以外は全部。作業台無し。
その後ソースコードとにらめっこ。ryanのパッチは特におかしなところはない。2.5用パッチまでさかのぼってみて気が付いた。mtekkさんの作ったパッチがryanのパッチには組み込まれていないのだ。もちろんwordpress2.6にも組み込まれていない。#6313: wp-admin-includes-taxonomy.diff
要は、記事にタグ一個ならこのバグに気づくこともない。記事に複数のタグをつけるとryanのパッチだけでは、タグが重複する。
wordpressでスラッグ付き日本語タグを複数使いたい場合はryanのパッチ#6593: is_term.2.diffとmtekkさんのパッチ#6313: wp-admin-includes-taxonomy.diffを当てましょう。tracのチケット作ったほうがいいのか?
追記
なんと2.6.1でryanのパッチが取り込まれることになりました。また、mtekkさんのパッチも取り込まれます。