• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

データベース構造

提供: WordPress Codex 日本語版
データベース概要から転送)
移動先: 案内検索

以下は、WordPress バージョン 3.4 の標準的なインストールで作成されるデータベース・テーブルの概要と説明です。現在、WordPress バージョン 3.4 が対応しているデータベースは、MySQL バージョン 5.0.15 以上のみです。

バージョン 1.5 以降の過去のデータベース概要については英語版ページにあるリンクおよびこのページの旧バージョンのデータベース概要セクションをご覧ください。

WordPress は自動的にこのデータベースと連動しているため、エンドユーザーはその構造を気にする必要はありません。しかしプラグインを作成していると、WordPress がどのようにデータやその連携情報を格納しているかについて知りたいと思うかもしれません。既存の WordPress API を使って必要なデータにアクセスしようとしたことがすでにあり、データベースには直接アクセスできないことがわかっている方に対し、WordPress ではこの処理が簡単にできるよう wpdb クラスを用意しています。

注:

  • テーブル名の接頭辞(wp_)は、WordPress インストール時の設定によります。
  • プラグインやテーマによって、設定データの追加、既存テーブルへのフィールド追加、新規テーブル作成がされることもあります。
  • 旧バージョンのデータベース概要

データベース関連図

下図は、WordPress データベースの概要および標準インストール時に作成されるテーブル間の関係を視覚的に表したものです。また、テーブル一覧以降では、テーブルおよびカラムの詳細を掲載しています。

WP 3.9.4 データベース関連図(ER図)
WP3.8 データベース関連図(ER図)

標準インストールでテーブル間の整合性は強制されない事に注意してください(例: 投稿とコメント)。もし WordPress データベースを操作するプラグインやその他の拡張機能を作成する場合は、ハウスキーピング処理をコードに含め、孤立したレコードがテーブルに残らないようにしましょう。この一例として、外部キーが削除された場合、一連の SQL コマンドを使って他のテーブルのレコードを削除するといったことが挙げられます。また、このような操作を行う前には、ユーザーにバックアップを取るよう促すことも忘れないでください。

テーブル一覧

WordPress の標準インストールで作成される全テーブルの一覧です。各テーブルが持つ具体的な情報は次節をご覧ください。

WordPress 3.8 Tables (11)
テーブル名 説明 関連インターフェース画面
wp_commentmeta コメントにはメタデータと呼ばれる情報があり、wp_commentmetaに格納されている。
wp_comments WordPress へのコメント・トラックバック・ピンバックデータを格納
wp_links リンク作成で入力されたリンク情報を格納。(この機能は非推奨になりましたが、Links Manager プラグインで有効化できます)
wp_options 管理 > 設定で設定されたオプション設定情報を格納(オプション設定リファレンス参照)。プラグインの設定情報が格納されることも多い。
wp_postmeta メタデータという各投稿記事特有の情報を格納。カスタムフィールドとして使用するほか、各投稿に情報や設定を付加するようなプラグインが、その情報を当テーブルに追加することがある。

(カスタムフィールド)

wp_posts WordPress データの核である投稿記事のほか、ページ、ナビゲーションメニューのデータを格納
wp_terms 投稿およびリンクの分類(カテゴリ・タグ)に使われる語句の基本情報を格納
wp_term_relationships オブジェクト(wp_posts テーブルの各投稿記事wp_links テーブル内の各リンク)と wp_term_taxonomy の(少なくとも 1)カテゴリ・タグとの関連付け情報を格納
wp_term_taxonomy 投稿およびリンクの分類上の語句(カテゴリ・タグ)データを格納
wp_usermeta 各ユーザ特有のユーザ・メタデータを格納
wp_users 登録ユーザ情報を格納

テーブル詳細

WordPress の標準インストールで作成される各テーブルの項目一覧です。

テーブル: wp_commentmeta

フィールド 種別 Null キー 初期値 備考 説明
meta_id bigint(20) unsigned   PRI   auto_increment コメントメタID(登録順に自動採番)
comment_id bigint(20) unsigned   IND 0   コメントID
meta_key varchar(255) YES IND NULL  
meta_value longtext YES   NULL  

インデックス

キー名 Type フィールド
PRIMARY PRIMARY meta_id
comment_id INDEX comment_id
meta_key INDEX meta_key


テーブル: wp_comments

フィールド 種別 Null キー 初期値 備考 説明
comment_ID bigint(20) unsigned PRI   auto_increment コメントID(投稿順に自動採番)
comment_post_ID bigint(20) unsigned IND 0   コメントが属する投稿ID
comment_author tinytext コメント投稿者
comment_author_email varchar(100) IND コメント投稿者の Eメールアドレス
comment_author_url varchar(200) コメント投稿者のウェブサイトURL
comment_author_IP varchar(100) コメント投稿者の IPアドレス
comment_date datetime 0000-00-00 00:00:00 コメント投稿日時
comment_date_gmt datetime IND & IND Pt2 0000-00-00 00:00:00 コメント投稿日時(GMT)
comment_content text コメント内容
comment_karma int(11) 0
comment_approved varchar(20) IND Pt1 1 コメントの承認状態
  • '0': 承認待ち
  • '1': 承認済み
  • 'spam': スパム
comment_agent varchar(255) コメント投稿者のユーザエージェント
comment_type varchar(20) コメントの種類
  • 'trackback': トラックバック
  • 'pingback': ピンバック
  • 通常コメントは値なし
comment_parent bigint(20) unsigned IND 0  
user_id bigint(20) unsigned 0   コメント投稿者が登録ユーザであるとき、そのユーザID

インデックス

キー名 Type フィールド
PRIMARY PRIMARY comment_ID
comment_approved INDEX comment_approved
comment_post_ID INDEX comment_post_ID
comment_approved_date_gmt INDEX comment_approved
comment_date_gmt
comment_date_gmt INDEX comment_date_gmt
comment_parent INDEX comment_parent
comment_author_email INDEX comment_author_email


フィールド 種別 Null キー 初期値 備考 説明
link_id bigint(20) unsigned PRI   auto_increment リンクID(登録順に自動採番)
link_url varchar(255) リンク URL
link_name varchar(255) リンク名
link_image varchar(255) リンク画像の URI
link_target varchar(25) リンクターゲット
link_description varchar(255) 説明
link_visible varchar(20) IND Y
  • 'Y': 表示する
  • 'N': 表示しない
link_owner bigint(20) unsigned 1
link_rating int(11) 0 評価
link_updated datetime 0000-00-00 00:00:00
link_rel varchar(255)
link_notes mediumtext メモ
link_rss varchar(255) リンクのフィード URI

インデックス

キー名 Type フィールド
PRIMARY PRIMARY link_id
link_visible INDEX link_visible


テーブル: wp_options

フィールド 種別 Null キー 初期値 備考
option_id bigint(20) unsigned   PRI   auto_increment
option_name varchar(64)   UNI    
option_value longtext      
autoload varchar(20)     yes  

インデックス

キー名 Type フィールド
PRIMARY PRIMARY option_id
option_name UNIQUE option_name


テーブル: wp_postmeta

フィールド 種別 Null キー 初期値 備考 説明
meta_id bigint(20) unsigned PRI   auto_increment メタID(一意)(登録順に自動採番)
post_id bigint(20) unsigned IND 0   投稿ID
meta_key varchar(255) YES IND NULL カスタムフィールドのキー名
meta_value longtext YES NULL カスタムフィールドの値

インデックス

キー名 Type フィールド
PRIMARY PRIMARY meta_id
post_id INDEX post_id
meta_key INDEX meta_key


テーブル: wp_posts

フィールド 種別 Null キー 初期値 備考 説明
ID bigint(20) unsigned PRI & IND Pt4 auto_increment 投稿ID(保存順に自動採番)
post_author bigint(20) unsigned IND 0   投稿者のユーザID
post_date datetime IND Pt3 0000-00-00 00:00:00 投稿日時
post_date_gmt datetime 0000-00-00 00:00:00 投稿日時(GMT)
post_content longtext 本文
post_title text タイトル
post_excerpt text 抜粋オプション
post_status varchar(20) IND PT2 publish 投稿ステータス
  • 'publish': 公開済み
  • 'pending': ペンディング
  • 'draft': 草稿
  • 'private': プライベート(非公開)
  • 'static':(2.0.x 以前はページ
  • 'object':
  • 'attachment':
  • 'inherit': 継承(添付ファイル、改訂履歴・自動保存のとき)
  • 'future': 予約投稿
comment_status varchar(20) open コメントステータス
  • 'open': 許可
  • 'closed': 不許可
  • 'registered_only': 登録ユーザのみ
ping_status varchar(20) open ピン・ステータス
  • 'open': トラックバック・ピンバックを受け付ける
  • 'closed': 受け付けない
post_password varchar(20) 閲覧パスワード
post_name varchar(200) IND
  • 投稿スラッグ
  • '{親ID}-revision(-#)' (改訂履歴のとき)
  • '{親ID}-autosave' (自動保存のとき)
to_ping text
pinged text ピン通知済み URL
post_modified datetime 0000-00-00 00:00:00 更新日時
post_modified_gmt datetime 0000-00-00 00:00:00 更新日時(GMT)
post_content_filtered longtext
post_parent bigint(20) unsigned IND 0   親ID
  • ページの投稿ID
  • 添付ファイルが属する投稿ID
  • 改訂履歴・自動保存のベース投稿ID
guid varchar(255)
menu_order int(11) 0 ページの表示順
post_type varchar(20) IND Pt1 post 投稿種別
  • 'post': 投稿
  • 'page': ページ
  • 'attachment': 添付ファイル
  • 'revision': 改訂履歴・自動保存
post_mime_type varchar(100) 添付ファイルのとき MIMEタイプ(image/png など)
comment_count bigint(20) 0 コメント数

インデックス

キー名 Type フィールド
PRIMARY PRIMARY ID
post_name INDEX post_name
type_status_date INDEX post_type
post_status
post_date
ID
post_parent INDEX post_parent
post_author INDEX post_author


テーブル: wp_terms

フィールド 種別 Null キー 初期値 備考 説明
term_id bigint(20) unsigned PRI auto_increment term のユニークID
name varchar(200) IND term 名
slug varchar(200) UNI term スラッグ。term 名を URL で扱いやすい形にしたもの
term_group bigint(10) 0 類義語のグルーピング

インデックス

キー名 Type フィールド
PRIMARY PRIMARY term_id
slug UNIQUE slug
name INDEX name


テーブル: wp_term_relationships

フィールド 種別 Null キー 初期値 備考 説明
object_id bigint(20) unsigned PRI Pt1 0 記事ID or リンクID
term_taxonomy_id bigint(20) unsigned PRI Pt2 & IND 0   term_taxonomy テーブルの term_taxonomy_id
term_order int(11) 0

インデックス

キー名 Type フィールド
PRIMARY PRIMARY object_id
term_taxonomy_id
term_taxonomy_id INDEX term_taxonomy_id


テーブル: wp_term_taxonomy

フィールド 種別 Null キー 初期値 備考 説明
term_taxonomy_id bigint(20) unsigned PRI auto_increment term+taxonomy ペアのユニークID
term_id bigint(20) unsigned UNI Pt1 0   wp_terms テーブルの term_id
taxonomy varchar(32) UNI Pt2 & IND term が属する taxonomy
  • 'category': 記事カテゴリ
  • 'link_category': リンクカテゴリ
  • 'post_tag': タグ
description longtext term の分類上の説明。「カテゴリ説明」など
parent bigint(20) unsigned 0 分類上の term 間の上下関係
count bigint(20) 0 term+taxonomy ペアに関連付けられたオブジェクト数。taxonomy='category' であればこのカテゴリに属する投稿記事数

インデックス

キー名 Type フィールド
PRIMARY PRIMARY term_taxonomy_id
term_id_taxonomy UNIQUE term_id
taxonomy
taxonomy INDEX taxonomy


テーブル: wp_usermeta

フィールド 種別 Null キー 初期値 備考 説明
umeta_id bigint(20) unsigned PRI   auto_increment ユーザ・メタデータの ID(登録順に自動採番)
user_id bigint(20) unsigned IND '0'   wp_users テーブルのユーザID
meta_key varchar(255) YES IND NULL ユーザ・メタデータのキー名(wp_capabilities など)
meta_value longtext YES NULL

インデックス

キー名 Type フィールド
PRIMARY PRIMARY umeta_id
user_id INDEX user_id
meta_key INDEX meta_key


テーブル: wp_users

フィールド 種別 Null キー 初期値 備考 説明
ID bigint(20) unsigned PRI   auto_increment ユーザID
user_login varchar(60) IND ログイン名
user_pass varchar(64) パスワード(暗号化)
user_nicename varchar(50) IND
user_email varchar(100) Eメールアドレス
user_url varchar(100) webサイト URI
user_registered datetime 0000-00-00 00:00:00 登録日時
user_activation_key varchar(60)
user_status int(11) 0
display_name varchar(250) 表示名


注意: WordPress のマルチサイト機能を有効にすると、wp_users テーブルに 2つの列「spam」と「deleted」が追加されます。参照 マルチサイト版の wp_users.

インデックス

キー名 Type フィールド
PRIMARY PRIMARY ID
user_login_key INDEX user_login
user_nicename INDEX user_nicename


マルチサイトテーブル一覧

以下は WordPress の マルチサイト 機能の使用で作成されるテーブルの一覧です。テーブルは ネットワーク管理 > ツール > ネットワーク で作成されます。

テーブルは、マルチサイトでグローバルなテーブルと見なすことができます。

WordPress 3.0 マルチサイトテーブル
テーブル名 説明 関連インターフェース画面
wp_blogs 作成された各 サイト は、テーブルwp_blogs に格納される。
wp_blog_versions サイト の現行データベースのバージョン・ステータスが、テーブルwp_blogs_versions に格納され、各サイトの更新に合わせて更新される。
wp_registration_log wp_registration_log は、各新規サイトが作成された際に、管理ユーザーを記録する。
wp_signups ログイン登録プロセスによりサイトに登録されたユーザーを格納する。ユーザー登録を有効化するには ネットワーク管理 > 設定 > 設定
wp_site テーブルwp_site は、メインのサイトのアドレス情報を含む。
wp_sitemeta サイト の機能情報は サイトデータ と呼ばれ、wp_sitemeta に格納される。サイト管理を含むさまざまな 設定 情報がテーブルに保存される。
wp_users すべての ユーザー は、テーブル wp_users で管理される。スタンドアローン版 に対して、マルチサイト版は2つのフィールドを追加する。
wp_usermeta このテーブルはマルチサイト用に再作成されないが、各サイトの ユーザーのメタデータwp_usermeta に保存される。
個別のサイトテーブル メインサイトのデータは既存の、番号の付かないテーブルに格納される。追加サイトのデータは、新規に作成される番号付きのテーブルに格納される。

マルチサイトテーブル詳細

ネットワークのインストールで作成されるテーブルおよびフィールドについて説明します。注意 : ネットワークの作成では以下のグローバルなテーブルが作成され、各サイトの作成で 個別のサイトテーブル が構築されます。


テーブル: wp_blogs

フィールド 種別 Null キー 初期値 備考 説明
blog_id bigint(20)   PRI   auto_increment サイトのID。以下の注参照。
site_id bigint(20)     0   ネットワークのID
domain varchar(200)   IND Pt1     ドメイン。例: example.com
path varchar(100)   IND Pt2     パス。例: / 、/mysite
registered datetime     0000-00-00 00:00:00   作成日時
last_updated datetime     0000-00-00 00:00:00   最終更新日時
public tinyint(2)     1   公開
archived tinyint(2)     0   アーカイブ化
mature tinyint(2)     0   成人向け
spam tinyint(2)     0   スパム
deleted tinyint(2)     0   削除
lang_id int(11)   IND 0    


注: blog_idはサイトを識別し、site_idはネットワークを識別します。これは、WordPress 2.x 時代の 'site(サイト)' が 'blog' と呼ばれていた名残です。ネットワークにサイトを追加すると、新しい行がこのテーブルwp_blogs に追加されますが、blog_id は増分される一方で、site_idは変わらない値 (恐らく 1) のままです。

インデックス

キー名 Type フィールド
PRIMARY PRIMARY blog_id
domain INDEX domain
path
lang_id INDEX lang_id


テーブル: wp_blog_versions

フィールド 種別 Null キー 初期値 備考 説明
blog_id bigint(20)   PRI 0   サイトのID
db_version varchar(20)   IND     WordPress定義のデータベースのバージョン。例: 30133 (WordPress 4.1)
last_updated datetime     0000-00-00 00:00:00   最終更新日時

インデックス

キー名 Type フィールド
PRIMARY PRIMARY blog_id
db_version INDEX db_version


テーブル: wp_registration_log

フィールド 種別 Null キー 初期値 備考 説明
ID bigint(20)   PRI   auto_increment  
email varchar(255)         Eメールアドレス
IP varchar(30)   IND      
blog_id bigint(20)     0   サイトのID
date_registered datetime     0000-00-00 00:00:00   登録日時

インデックス

キー名 Type フィールド
PRIMARY PRIMARY ID
IP INDEX IP


テーブル: wp_signups

フィールド 種別 Null キー 初期値 備考 説明
signup_id bigint(20)   PRI   auto_increment 登録アカウントのID
domain varchar(200)   IND Pt1      
path varchar(100)   IND Pt2      
title longtext          
user_login varchar(60)   IND Pt1     登録アカウント名
user_email varchar(100)   IND & IND Pt2     E メールアドレス
registered datetime     0000-00-00 00:00:00   登録日時
activated datetime     0000-00-00 00:00:00   アクティベートの日時
active tinyint(1)         アクティブかどうか
activation_key varchar(50)   IND     アクティベーションキー
meta longtext Yes   NULL    

インデックス

キー名 Type フィールド
signup_id PRIMARY signup_id
activation_key INDEX activation_key
user_email INDEX user_email
user_login_email INDEX user_login
user_email
domain_path INDEX domain
path


テーブル: wp_site

フィールド 種別 Null キー 初期値 備考 説明
id bigint(20)   PRI   auto_increment ネットワークのID
domain varchar(200)   IND Pt1     ドメイン。例: example.com
path varchar(100)   IND Pt2    パス。例: /

インデックス

キー名 Type フィールド
PRIMARY PRIMARY id
domain INDEX domain
path


テーブル: wp_sitemeta

フィールド 種別 Null キー 初期値 備考 説明
meta_id bigint(20)   PRI   auto_increment メタ情報のID
site_id bigint(20)     0   ネットワークのID
meta_key varchar(255) Yes IND NULL   キー。例: site_name、admin_email
meta_value longtext Yes IND NULL   キーに対応する値

インデックス

キー名 Type フィールド
PRIMARY PRIMARY meta_id
meta_key INDEX meta_key
site_id INDEX site_id


テーブル: wp_users

フィールド 種別 Null キー 初期値 備考 説明
ID bigint(20) unsigned PRI   auto_increment ユーザID
user_login varchar(60) IND ログイン名
user_pass varchar(64) パスワード(暗号化)
user_nicename varchar(50) IND
user_email varchar(100) Eメールアドレス
user_url varchar(100) webサイト URI
user_registered datetime 0000-00-00 00:00:00 登録日時
user_activation_key varchar(60)
user_status int(11) 0
display_name varchar(250) 表示名
spam tinyint(2)     0   マルチサイト版で追加
deleted tinyint(2)     0   マルチサイト版で追加

インデックス

キー名 Type フィールド
PRIMARY PRIMARY ID
user_login_key INDEX user_login
user_nicename INDEX user_nicename


個別のサイドテーブル

新規に追加サイトが作成されると、上のスタンドアローン版 と同様にサイト固有のテーブルが作成されます。新サイトの各テーブル名には、サイトの ID (blog_id) が付加されます。以下の例はサイトの ID が 2接頭辞wp_ の場合に作成されるテーブルです。

メインサイトのデータは、番号のないテーブルに保存されます。

ソースファイル

データベーススキームは wp-admin/includes/schema.php で定義されています。

資料

旧バージョンのデータベース概要

変更履歴

  • 3.4 :
    • comments table: comment_approved インデックスをドロップ。
    • options table: blog_id フィールドをドロップ。
    • posts table: post_content_filtered フィールドを text から longtext に変更。

最新英語版: WordPress Codex » Database Description最新版との差分