タグまわりの謎

タグ管理プラグインをSimpleTagsからAdvanced Tag Entryに替えてまだ日も浅いのだが、どうもコイツにしても日本語タグを重複して生成しやがる。またタチが悪いことにタグに1つでも記事が関連付けられている場合は、そのタグを削除できないし、スラッグの変更もできない。

このまま使い続けて、同じタグがわんさかできてしまっては悲しいので、保有記事数が少ないうちにダブってしまったタグを削除し、スラッグをタグ同様に日本語に変更することを決意した。もうカッコの問題ではない。ブログの存亡に関わるのだ。(オーバーな・・・) そして、古巣のSimpleTagsにスイッチする。なんでかというと、投稿時にAdvanced Tag Entryではドロップダウンメニューでタグ付けするのだが、これがタグ数が多いとめんどくさいからだ。

先ほど述べたようにAdvanced Tag Entryではラチがあかないので、SimpleTagsを入れてみる。するとタグはダブっていない。コイツは認識すらできないようだ。そこでデータベースを調べる。wp_termswp_term_relationshipswp_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_idterm_taxonomy_idobject_idとワンクッション置くんだろう?

※ 今のところ実害はないですが、あくまでボクの仮定です。作業時はよーく検証してください。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント

  1. inocco より:

    あれ!日本語タグが重複に生成されてしまったのですね。
    私の環境ではそういった症状もなく使えているのですが、日本語タグはすべて重複して生成されていたのでしょうか?ちょっと試してみようかなと思います。

    うーん、不思議ですね。まさにタグまわりの謎 :sad:

  2. Masayan より:

    そーなんですよ。 :cry:

    でもね、すべてじゃないんです、3つほど。しかも、例のURLで該当記事を探そうとすると404になるんですよね。もう、わけわかんない状態です。少ない記事のタグならどうにでもしますが、100超えちゃうとねー。なかなか、冒険できませんです、ハイ。 :sad:

  3. power source* より:

    WP: 「タグまわりの謎」 (1) 調査開始

    Masayan先輩のサイトでは、Advanced Tag Entry を使っても日本語タグデータが増殖する という。

    ぼのの場合、Advanced Tag Entry を入れた当初にチェックして以降は、記事編集画面でタグ付けすると…