タグ管理プラグインをSimpleTagsからAdvanced Tag Entryに替えてまだ日も浅いのだが、どうもコイツにしても日本語タグを重複して生成しやがる。またタチが悪いことにタグに1つでも記事が関連付けられている場合は、そのタグを削除できないし、スラッグの変更もできない。
このまま使い続けて、同じタグがわんさかできてしまっては悲しいので、保有記事数が少ないうちにダブってしまったタグを削除し、スラッグをタグ同様に日本語に変更することを決意した。もうカッコの問題ではない。ブログの存亡に関わるのだ。(オーバーな・・・) そして、古巣のSimpleTagsにスイッチする。なんでかというと、投稿時にAdvanced Tag Entryではドロップダウンメニューでタグ付けするのだが、これがタグ数が多いとめんどくさいからだ。
先ほど述べたようにAdvanced Tag Entryではラチがあかないので、SimpleTagsを入れてみる。するとタグはダブっていない。コイツは認識すらできないようだ。そこでデータベースを調べる。wp_terms、wp_term_relationships、wp_term_taxonomyと3つのタグ関連テーブルがある。wp_termsテーブルの検索で、nameにそのタグを入れ調べる。おっ、2つ発見。ここで2つのterm_idをひかえておく。次にwp_term_taxonomyテーブルで先ほどのterm_idを検索する。するとそれに対するterm_taxonomy_idがわかる。これもひかえておく。今度はwp_term_relationshipsテーブルでterm_taxonomy_idを検索するとタグ付けされているいくつかのobject_idがわかる。これがすなわちpost_idだと「思う」のだが、これを統一したいタグのterm_taxonomy_idに置き換えてやるといいと「思う」のだ。念のため、post_idと思われる記事をさがすとどうもビンゴっぽい。
編集からterm_taxonomy_idを統一したいタグの数値に変更→実行すると、6つ中3つのエラー。なんで? 何度やってもエラーになるのでその記事を探してみたら・・・。3つともページだった。ページにはタグが付けれないはずだが、どうして? そこで、空白のまま実行すると変更できた。Advanced Tag Entryで該当タグを削除するとめでたく完了。こ、怖い!怖すぎる!
たぶん、プラグインじゃなくて本体のバグのような気がするんだなぁ。さすがにこればっかりはわかんないな。スラッグが「%e3%82%b9%e3%82%bf%e3%83%b3%e3%83%97%e3%83%a9%e3%83%aa%e」になるけどしょうがないや。だけど、なんでterm_id→term_taxonomy_id→object_idとワンクッション置くんだろう?
※ 今のところ実害はないですが、あくまでボクの仮定です。作業時はよーく検証してください。
コメント
あれ!日本語タグが重複に生成されてしまったのですね。
私の環境ではそういった症状もなく使えているのですが、日本語タグはすべて重複して生成されていたのでしょうか?ちょっと試してみようかなと思います。
うーん、不思議ですね。まさにタグまわりの謎
そーなんですよ。
でもね、すべてじゃないんです、3つほど。しかも、例のURLで該当記事を探そうとすると404になるんですよね。もう、わけわかんない状態です。少ない記事のタグならどうにでもしますが、100超えちゃうとねー。なかなか、冒険できませんです、ハイ。
WP: 「タグまわりの謎」 (1) 調査開始
Masayan先輩のサイトでは、Advanced Tag Entry を使っても日本語タグデータが増殖する という。
ぼのの場合、Advanced Tag Entry を入れた当初にチェックして以降は、記事編集画面でタグ付けすると…