WP2.3: Ultimate Tag Warrior データのインポート
WordPress 2.3 の正常動作を一通り確認し、投稿テストなどをした後、Ultimate Tag Warrior (以下 UTW)のタグを WP 本体にインポートした。その作業記録とデータ状態の確認。
日本語でカテゴリ・タグを付けていた場合、インポート結果が、本来あるべきデータ状態になりませんでした。現時点では、インポートの実行はおすすめしません。解決策を模索中です。
テーブル概要 追記
UTW
tagsテーブル — タグID と タグ名post2tagテーブル — 記事とタグとの関連付け(ID)tag_synonymsテーブル — ゆらぎ情報
WP タグ機能
termsテーブル — カテゴリ・タグによる分類に使われる語句(term)データ。同名カテゴリ・タグは一つの語句として扱われる。term_taxonomyテーブル — 各語句(term)がどの分類方法(記事カテゴリ・リンクカテゴリ・タグ)に使われるかterm_relationshipsテーブル — 記事(posts)・リンク(links)と分類(term_taxonomy)との関連付け(ID)
詳しくは、「WP2.3: データベース変更点の確認」 を参照。
行なった作業
- UTW 3テーブルのバックアップを取得
- 使用していないタグを
wp_tagsテーブルから削除
明らかな誤記と、wp_post2tagテーブル(記事との関連付け)も確認して、削除対象を決定。118 → 106レコードになった。 インポート
- Manage > Import 画面で「Ultimate Tag Warrior」をクリック。
- 「Import Ultimate Tag Warrior」画面が表示される。
説明を読んで [Step 1 »] をクリック。 - Reading UTW Tags…
- UTW タグデータ(
wp_tagsテーブル)が読み込まれ、少し経つと、読み込んだ件数とタグ一覧が表示される。 - 「インポートしたくないタグがあれば UTW 管理ページで削除してから、このインポートをリランしてね。」(意訳)という表示。
- 上記 2 で整理済みなので、[ Step 2 » ] ボタンをクリック。
- UTW タグデータ(
Reading UTW Post Tags…
post2tagテーブルのデータが読み込まれ、少し経つと、件数と読み込みが完了した旨が表示される。Done! 991 tag to post relationships were read.
→ [ Step 3 » ] をクリック
Adding Tags to Posts…
しばらく経つと、記事に追加されたタグ数が表示される。Done! 991 tags where added!
→ [ Step 4 » ] をクリック
- Import Complete!
- phpMyAdmin で DB のデータを確認
データ確認
tags テーブルと terms テーブルとの比較
図の説明:
- 左側: UTW の
tagsテーブル — 「タグ」を格納 - 右側: インポート先の
termsテーブル — カテゴリやタグに使われる「語句」を格納 termsテーブルのグレイアウト部分(ID 1~52)は、WP 2.3 にバージョンアップしたときに、記事・リンクカテゴリから作られたデータ。
データの説明:
(括弧付き番号は図中の番号と対応してます。)
- (1) 既に存在する語句のデータは追加されない
- term テーブルでは、同名カテゴリ・タグを一つの語句(term)データとして扱う。「WordPress」や「rose」は、カテゴリで使っているデータが存在する(ID: 2, 5)ので、このテーブルには追加されない。
-
注 既存の日本語カテゴリにアルファベットのスラッグを付けていると、同じ名前のタグが別物として扱われてしまった。インポート機能でも、元データをスラッグに変換して、それで存在チェックをしている模様。(コードは未確認)
(例) 元々「粉粧楼」カテゴリがある(ID 14)が、スラッグが「fzl」になっているせいか、別に追加された(ID 65)。 - (2) 存在しない語句のデータは作成される
- 「plugin」「全体像」など、
termsテーブルに存在しない語句のデータは、既存レコードの後ろに追加された。 -
UTW にはスラッグがないので、インポート時に生成された。投稿スラッグの作成方法と同じ模様。
- アルファベットは小文字に
- 日本語部分は URL エンコード
- 半角 () やピリオド(.)は抜き (図中 (4))
- (3) ハイフンの扱い
- UTW では、タグ名に含まれるスペースはハイフン(-)として DB に格納され、サイト上に表示するときにスペースに変換されていた。
- インポートによって、このハイフンはそのままタグ名・スラッグに引き継がれた。サイト上の表示もハイフン付きとなっている。
- rui_mashita さんも、
ただ、この引き継ぎ作業で、タグ名の半角スペースが “-” に変わってしまったのが不満です。タグ名はwp_termsテーブルに格納されてるっぽいので、後でSQLを発行するつもり。
と、記事に書いていらっしゃいました。(Retujyou どうにもならない劣情の種子を植え付けられたばかりに » Wordpress 2.3 にアップグレード 新機能を見てみる) -
(例1) タグ「Template Tag」
- UTW — タグ付け・サイト上の表示では「Template Tag」、DB には「Template-Tag」として入っていた。
- WP 2.3 — 「Template-Tag」 と表示される。本当は 「Template Tag」 と表示したい。
-
(例2) タグ「UTF-8」
- UTW — 「UTF-8」としてタグ付けして、DB にもそのまま入っていたが、サイト上では「UTF 8」と表示されていた。
- WP2.3 — 「UTF-8」 と表示される。こっちは OK。
-
「Template Tag」 の表示を直すには — WP 2.3 のタグ付け時の存在チェックに不備があるっぽい(上記 (1) 追記参照)ので、
nameを「Template Tag」に直すのは要注意。でも、スペースは投稿スラッグ作成でハイフンに変換されるので、大丈夫かも。。?
wp_term_taxonomy
続きは後で。





[...] UTWからのインポートでは、aaa bbというタグがaaa-bbという風に半角スペースが-に置き換えれてしまうという特性があります。日本語のタグはそのままでした。(参考:power source* » WP2.3: Ultimate Tag Warrior データのインポート) [...]
[...] power source* » WP2.3: Ultimate Tag Warrior データのインポート [...]