WordPressのterm_taxonomyテーブルについて解説

 ·  ☕ 4 

ハローハロー! ハロウィンの予定はない! veilnuiです。

WordPressのデータベース構造まとめ第9回。「term_taxonomyテーブル」についてです。
もう9回です。あと2回でコンプリートです。

  1. commentmeta
  2. comments
  3. links
  4. options
  5. postmeta
  6. posts
  7. terms
  8. term_relationships
  9. term_taxonomy
  10. usermeta
  11. users

テーブル概要

投稿およびリンクの分類上の語句(カテゴリ・タグ)データを格納

http://wpdocs.osdn.jp/データベース構造

このテーブルは「ターム」の「メタデータ」を保存します。
また、テーブルの「taxonomyカラム」は、ターム属する「タクソノミー」を保存します。

「ターム」と「タクソノミー」の違い

「タクソノミー」は「カテゴリー」「タグ」「カスタムタクソノミー」など、すべての分類です。

「ターム」はそれぞれのタクソノミーの中の一つ一つの分類です。
「カテゴリー」の中の「カテゴリー名」「タグ」の中の「タグ名」です。

まとめると、「タクソノミー」は「大分類」、「ターム」は「小分類」です。

こちらのページが分かりやすいです。

https://blog.maromaro.co.jp/archives/7021

依存しているテーブル、カラム

  • termsテーブル term_idカラム

依存されているテーブル、カラム

  • term_relationshipテーブル term_taxonomy_idカラム

カラム構成

<td>
  ID
</td>

<td>
  bigint(20) unsigned
</td>
<td>
  termsテーブルのterm_id
</td>

<td>
  bigint(20) unsigned
</td>
<td>
  種類
</td>

<td>
  varchar(32)
</td>
<td>
  説明
</td>

<td>
  longtext
</td>
<td>
  親カテゴリー
</td>

<td>
  bigint(20) unsigned
</td>
<td>
  紐付けられているコンテンツの数
</td>

<td>
  bigint(20)
</td>
term_taxonomy_id
term_id
taxonomy
description
parent
count

term_taxonomy_id

<td>
  bigint(20) unsigned
</td>
<td>
</td>
<td>
  AUTO_INCREMENT
</td>
データ型
デフォルト値
備考

タームメタデータIDです。

このテーブルに登録された各コンテンツを区別するカラムです。
それぞれのフィールドは「0以上の重複しない数字」がIDとして割り当てられます。

WordPressでは、このカラムを編集できません
phpMyAdminなどでデータベースにアクセスすることで、このカラムを編集できます

データベースに新たなレコードを追加するとき、または既存のフィールドを変更するときは、次のルールに従ってください。赤文字は絶対条件です

  1. 他のレコードと値が被らないこと
  2. 0の数字がIDとして割り当てられないこと(1以上のIDを割り当てること)
  3. オートインクリメント機能により「現在のレコード数+1」の値に設定すること
  4. このカラムに依存する他のテーブルも確認すること

データベースを編集するときは、IDが被らないように注意してください
IDが被ると、エラーが表示されてフィールドを編集することができません。

また、WordPressでは、IDが0のレコードをNULLとして使用します
そのため、IDが0のレコードは作成しないように注意してください。

WordPressでは、このカラムに依存しているテーブルがあります。
こののカラムを編集したとき、次のテーブルとカラムも確認してください。

依存されているテーブル、カラム

  • term_relationshipテーブル term_taxonomy_idカラム

term_id

<td>
  bigint(20) unsigned
</td>
<td>
</td>
データ型
デフォルト値

タームIDです。
どのタームのメタデータであるかを決めるカラムで、タームとメタデータを関係付けます。

依存しているテーブル、カラム

  • termsテーブル term_idカラム

taxonomy

<td>
  varchar(32)
</td>
<td>
</td>
データ型
デフォルト値

「ターム」がどの「タクソノミー」に属しているか保存します。
デフォルトでは3種類のタクソノミーがあります。
タクソノミーは「カスタムタクソノミー」を作成すると増えます。

<td>
  カテゴリー
</td>
<td>
  リンクカテゴリー
</td>
<td>
  タグ
</td>
category
link_category
post_tag

description

<td>
  longtext
</td>
<td>
</td>
データ型
デフォルト値

「ターム」の説明です。「タクソノミー」の説明ではありません。

longext型のため、最大で4,294,967,296文字までの説明文を保存できます。
日本語などのマルチバイト文字はそれよりも少なくなりますが、それでも十分な文字数です。

parent

<td>
  bigint(20) unsigned
</td>
<td>
</td>
データ型
デフォルト値

現在の「ターム」の「親ターム」を保存します。

カテゴリーは階層構造にできます。
タグはできません。

カテゴリーを階層構造にしたとき、どの「カテゴリー」の「子カテゴリー」にするかを保存します。

依存しているテーブル、カラム

  • termsテーブル term_idカラム

count

<td>
  bigint(20)
</td>
<td>
</td>
データ型
デフォルト値

「ターム」に属している「コンテンツ」の数です。
ステータスが「公開済み」になっているコンテンツだけがカウント対象です。

参考サイト

http://wpdocs.osdn.jp/%e3%83%87%e3%83%bc%e3%82%bf%e3%83%99%e3%83%bc%e3%82%b9%e6%a7%8b%e9%80%a0  


veilnui
veilnui