• twitter
  • Facebook
  • はてなブックマーク
2012年02月27日(月)

[wordpress] データベースのテーブル覚書き

wordpressをインストールすると、MySQLデータベースにインストール時に設定したプレフィックス文字を利用してテーブルが作成されます。各テーブルには次のような内容が格納されています。
テーブル名概要
wp_commentmetaコメント用のカスタムフィールド情報。投稿されたコメントのIDと、カスタムフィールド名・値が格納されている。
wp_comments投稿されたコメントを格納。comment_post_IDに対して投稿されたコメントと、もしユーザー登録が必要で投稿IDを持っているユーザーからのコメントの場合は、ユーザーの情報など。
wp_links管理画面の「リンク」で投稿したデータを格納。URLや、バナー画像、リンクに対する説明など
wp_optionsサイト全体の設定に関する情報を格納。wp_content内にあるプラグイン情報や、ウィジットの状態、投稿カテゴリーの親子関係、フィード発行に関する事など色々
wp_post_meta投稿記事に関する様々な情報を格納。カスタムフィールド、ping送信状況、投稿フォーマットのタイプ、アイキャッチ画像に関する情報、投稿ステータスやrevisionに関する事など
wp_posts投稿記事とページ記事、アイキャッチ画像に関するデータを格納。revision、auto-draft(自動下書き)、ゴミ箱データなどの情報も全てこの中にあります。メディアファイルのアップロード時にもこのテーブルに1ファイル=1カラム使用してデータが格納されます。
wp_termstaxonomy分類(デフォルトではlink_category、category、tagの3種類)の名前とスラッグ名を格納。
wp_terms_relationships投稿記事やリンクに紐づけられたwp_terms情報を格納。object_idが、記事のIDまたはリンクのID。term_taxonomy_idが、wp_term_taxonomyテーブル中のterm_taxonomy_id。この2つがセットになって、ユニークインデックスになっています。(つまり同じ組み合わせは1つ以上存在しない)
wp_term_taxonomytaxonomy分類の種別や分類情報を格納。link_category、category、tagsのいずれか。また、wp_termsの中にある紐づけられたデータIDも格納。wordpressのデフォルトでは、3種類の分類のみが利用されていますが、独自のtaxonomyを定義した場合は、taxonomyカラムの値に登録した文字を利用する事も可能。
wp_usermeta登録された各ユーザーの詳細情報を格納。名前やエディタ利用に関する設定、アイコンやURL等の個人情報など
wp_usersこのwordpressに登録されたユーザー一覧。もし、コメント投稿や複数人による管理を行う場合、各ユーザーの権限と登録情報が格納されています。権限によって管理画面にアクセスできるかを判定。

ゴミデータになりやすいものが、「リビジョン投稿」と「自動下書き」です。管理画面で投稿編集作業していると、知らない間にAjaxによって「wp_posts」テーブルにどんどん記事が加算されていきます。

投稿管理は、wordpressをインストールしたディレクトリ内の「wp-posts.php」によって行われています。Ajaxの機能(javascript)を切っておけば、リビジョン投稿はされません。また、wp-admin/posts.phpの中のjavascriptをコメントアウトしておけば、リビジョン機能は無効になります。

記事と連動して管理されるメタデータも自動追加されます(wp_post_metaテーブル)。コメントの許可や、ping送信をしたかどうか、最後に利用したリビジョンデータの情報や、アイキャッチ情報等様々です。pingなどは送信が終われば自動で削除されるデータですが、リビジョンに関してゴミがたまりやすくなっているため、テーブルの定期メンテナンスが必要だと思います。(サイトが重くなる原因になるので)

関連投稿記事

Comment:


[wordpress] データベースのテーブル覚書き への1件のフィードバック