▼調査対象
WordPress v6.7.1 (最新版:2024/12/08現在)
データベース構造とデータの取得方法をまとめてみました。
CTRL+F で検索、クリックでソースコードを確認できます。
WordPressのDBテーブルの一覧
WordPressでは標準で12テーブルが作成されます。用途別に分けて確認すると下記のようになります。
用途 |
テーブル名 |
個数 |
記事データ | wp_posts, wp_postmeta | 2 |
コメント | wp_comments, wp_commentmeta | 2 |
カテゴリー | wp_terms, wp_termmeta, wp_term_taxonomy, wp_term_relationships | 4 |
ユーザー情報 | wp_users, wp_usermeta | 2 |
サイト情報 | wp_options | 1 |
リンク情報 | wp_links | 1 |
記事やコメント、カテゴリー、ユーザー情報には metaテーブルが存在しています。
他に利用しているプラグインやテーマによってはテーブルは追加されます。
WordPressの投稿データの構造とリスト
投稿、固定ページ、カスタム投稿の他、アイキャッチ画像や更新履歴の情報も保存されている。
投稿データはテーマ上では通常、オブジェクトとして扱われるが、カラム名がそのままプロパティになる。
wp_posts |
カラム名 |
型 |
概要 |
ID | bigint(20) unsigned |
投稿ID。auto_increment
|
post_autdor | bigint(20) unsigned |
投稿の著者ID
|
post_date | datetime |
投稿日時
|
post_date_gmt | datetime | |
post_content | longtext |
投稿本文
|
post_title | text |
投稿タイトル
|
post_excerpt | text |
投稿の抜粋
|
post_status | varchar(20) |
投稿ステータス
|
comment_status | varchar(20) |
コメント受付設定
|
ping_status | varchar(20) |
ピングバック受付設定
|
post_password | varchar(255) |
閲覧パスワード
|
post_name | varchar(200) |
投稿スラッグ
|
to_ping | text | |
pinged | text | |
post_modified | datetime |
投稿更新日時
|
post_modified_gmt | datetime | |
post_content_filtered | longtext |
フィルター処理後の投稿本文
|
post_parent | bigint(20) unsigned |
投稿の親投稿ID
|
guid | varchar(255) |
投稿の識別ID。変更は非推奨。
|
menu_order | int(11) | |
post_type | varchar(20) |
投稿タイプ。記事以外に添付ファイルや履歴、メニュー情報など様々なデータを受け入れている。
|
post_mime_type | varchar(100) |
投稿がファイルの場合のメディアタイプ
|
comment_count | bigint(20) |
投稿のコメント数
|
wp_postmeta |
カラム名 |
型 |
概要 |
meta_id | bigint(20) unsigned |
識別ID。auto_increment
|
post_id | bigint(20) unsigned |
対象の投稿ID。外部キー。
|
meta_key | varchar(255) |
カスタムフィールド名
|
meta_value | longtext |
カスタムフィールドの値
|
投稿データの取得と追加、更新、保存のやり方
投稿データの取得や保存は対応するグローバル関数が用意されています。
関数 |
概要 |
get_postwp-includes/post.php |
投稿IDから投稿情報を取得 |
get_postswp-includes/post.php |
指定した条件から投稿情報のリストを取得 |
wp_insert_postwp-includes/post.php |
指定した投稿情報の連想配列で投稿を作成 |
wp_update_postwp-includes/post.php |
指定した投稿情報の連想配列で投稿を更新 |
wp_delete_postwp-includes/post.php |
指定した投稿IDの情報および関連情報(コメントやカスタムフィールド)を削除 |
get_post_metawp-includes/post.php |
投稿IDとカスタムフィールド名からカスタムフィールド値を取得 |
add_post_metawp-includes/post.php |
指定した投稿IDにカスタムフィールド値を追加 |
update_post_metawp-includes/post.php |
指定した投稿IDのカスタムフィールド値を更新 |
delete_post_metawp-includes/post.php |
指定した投稿IDのカスタムフィールドを削除 |
WordPressのコメントデータの構造とリスト
wp_comments |
カラム名 |
型 |
概要 |
comment_ID | bigint(20) unsigned |
コメントID。auto_increment
|
comment_post_ID | bigint(20) unsigned |
対象の投稿ID
|
comment_author | tinytext |
コメント投稿者
|
comment_author_email | varchar(100) |
コメント投稿者のメールアドレス
|
comment_author_url | varchar(200) |
コメント投稿者のサイトURL
|
comment_author_IP | varchar(100) |
コメント投稿者のIPアドレス
|
comment_date | datetime |
コメントされた日時
|
comment_date_gmt | datetime | |
comment_content | text |
コメント本文
|
comment_karma | int(11) | |
comment_approved | varchar(20) |
コメントの承認状況
|
comment_agent | varchar(255) |
コメント投稿者のユーザーエージェント
|
comment_type | varchar(20) |
コメント種別。comment, pingback, trackback
|
comment_parent | bigint(20) unsigned |
コメントの親コメントID
|
user_id | bigint(20) unsigned |
コメント投稿者のユーザーID
|
wp_commentmeta |
カラム名 |
型 |
概要 |
meta_id | bigint(20) unsigned |
識別ID。auto_increment
|
comment_id | bigint(20) unsigned |
対象のコメントID。外部キー。
|
meta_key | varchar(255) |
メタキー名
|
meta_value | longtext |
メタ情報の値
|
コメントデータの取得と追加、更新、保存のやり方
コメントデータの取得や保存は対応するグローバル関数が用意されています。
関数 |
概要 |
get_commentwp-includes/comment.php |
コメントIDから投稿情報を取得 |
get_commentswp-includes/comment.php |
指定した条件からコメント情報のリストを取得 |
wp_insert_commentwp-includes/comment.php |
指定したコメント情報の連想配列でコメントを作成 |
wp_update_commentwp-includes/comment.php |
指定したコメント情報の連想配列でコメントを更新 |
wp_delete_commentwp-includes/comment.php |
指定したコメントIDの情報を削除 |
get_comment_metawp-includes/comment.php |
コメントIDとメタキー名から値を取得 |
add_comment_metawp-includes/comment.php |
指定したコメントIDにメタ情報を追加 |
update_comment_metawp-includes/comment.php |
指定したコメントIDのメタ情報を更新 |
delete_comment_metawp-includes/comment.php |
指定したコメントIDのメタ情報を削除 |
WordPressのカテゴリーデータの構造とリスト
投稿が所属するカテゴリー情報のテーブル。
投稿タグもこのテーブルで扱われる。
wp_terms |
カラム名 |
型 |
概要 |
term_id | bigint(20) unsigned |
カテゴリー(ターム)ID。auto_increment
|
name | varchar(200) |
カテゴリーの表記
|
slug | varchar(200) |
カテゴリーのスラッグ。主にurlに使われる英字。
|
term_group | bigint(10) |
|
wp_termmeta |
カラム名 |
型 |
概要 |
meta_id | bigint(20) unsigned |
識別ID。auto_increment
|
term_id | bigint(20) unsigned |
対象のカテゴリー(ターム)ID。外部キー。
|
meta_key | varchar(255) |
メタキー
|
meta_value | longtext |
メタ情報の値
|
wp_term_taxonomy |
カラム名 |
型 |
概要 |
term_taxonomy_id | bigint(20) unsigned |
識別ID。auto_increment
|
term_id | bigint(20) unsigned |
対象のカテゴリー(ターム)ID。外部キー。
|
taxonomy | varchar(32) |
カテゴリーの分類。category, post_tag, link_category, nav_menu, カスタムタクソノミー名などが入る
|
description | longtext |
カテゴリーの説明
|
parent | bigint(20) unsigned |
カテゴリーの親カテゴリーID
|
count | bigint(20) |
カテゴリーに所属する記事数
|
wp_term_relationships |
カラム名 |
型 |
概要 |
object_id | bigint(20) unsigned |
対象のID。外部キー。投稿IDなどが入る。
|
term_taxonomy_id | bigint(20) unsigned |
wp_term_taxonomyの識別ID。外部キー。
|
term_order | int(11) |
|
カテゴリーデータの取得と追加、更新、保存のやり方
カテゴリーデータの取得や保存は対応するグローバル関数が用意されています。
関数 |
概要 |
get_termwp-includes/taxonomy.php |
カテゴリー(ターム)IDからカテゴリー情報を取得 |
get_termswp-includes/taxonomy.php |
指定した条件からカテゴリー情報のリストを取得 |
wp_insert_termwp-includes/taxonomy.php |
指定したカテゴリー情報の連想配列でカテゴリーを作成 |
wp_update_termwp-includes/taxonomy.php |
指定したカテゴリー情報の連想配列でカテゴリーを更新 |
wp_delete_termwp-includes/taxonomy.php |
指定したカテゴリー(ターム)IDの情報を削除 |
get_term_metawp-includes/taxonomy.php |
カテゴリー(ターム)IDとメタキー名から値を取得 |
add_term_metawp-includes/taxonomy.php |
指定したカテゴリー(ターム)IDにメタ情報を追加 |
update_term_metawp-includes/taxonomy.php |
指定したカテゴリー(ターム)IDのメタ情報を更新 |
delete_term_metawp-includes/taxonomy.php |
指定したカテゴリー(ターム)IDのメタ情報を削除 |
WordPressのユーザーデータの構造とリスト
wp_users |
カラム名 |
型 |
概要 |
ID | bigint(20) unsigned |
ユーザーID。auto_increment
|
user_login | varchar(60) |
ログイン名
|
user_pass | varchar(255) |
ログインパスワード
|
user_nicename | varchar(50) |
著者情報のスラッグ
|
user_email | varchar(100) |
ユーザーのメールアドレス
|
user_url | varchar(100) |
ユーザーのサイトURL
|
user_registered | datetime |
ユーザーが登録された日時
|
user_activation_key | varchar(255) |
パスワード再発行用のアクティベーションキー
|
user_status | int(11) |
ユーザーのステータス
|
display_name | varchar(250) |
ブログ上の表示名
|
wp_usermeta |
カラム名 |
型 |
概要 |
umeta_id | bigint(20) unsigned |
識別ID。auto_increment
|
user_id | bigint(20) unsigned |
対象のユーザーID。外部キー。
|
meta_key | varchar(255) |
メタキー名
|
meta_value | longtext |
メタ情報の値
|
ユーザーデータの取得と追加、更新、保存のやり方
ユーザーデータの取得や保存は対応するグローバル関数が用意されています。
関数 |
概要 |
get_user_bywp-includes/pluggable.php |
ユーザーIDやログイン名、メールアドレスからユーザー情報を取得 |
get_userswp-includes/user.php |
指定した条件からユーザー情報のリストを取得 |
wp_insert_userwp-includes/user.php |
指定したユーザー情報の連想配列でユーザーを作成 |
wp_update_userwp-includes/user.php |
指定したユーザー情報の連想配列でユーザーを更新 |
wp_delete_userwp-admin/includes/user.php |
指定したユーザーIDのユーザー情報やメタ情報を削除 |
get_user_metawp-includes/user.php |
ユーザーIDとメタキー名から値を取得 |
add_user_metawp-includes/user.php |
指定したユーザーIDにメタ情報を追加 |
update_user_metawp-includes/user.php |
指定したユーザーIDのメタ情報を更新 |
delete_user_metawp-includes/user.php |
指定したユーザーIDのメタ情報を削除 |
WordPressのサイトデータの構造とリスト
wp_optionsにはサイト情報、プラグインやテーマ、ウィジェットなどの設定情報が保存されています。
wp_options |
カラム名 |
型 |
概要 |
option_id | bigint(20) unsigned |
識別ID。auto_increment
|
option_name | varchar(191) |
オプション名。主にキーとなる英字。
|
option_value | longtext |
オプションの値
|
autoload | varchar(20) |
自動読込の設定。yes, no のいずれか。
|
オプションデータの取得と追加、更新、保存のやり方
オプションデータの取得や保存は対応するグローバル関数が用意されています。
関数 |
概要 |
bloginfowp-includes/general-template.php |
オプション名からサイト情報を取得表示 |
get_bloginfowp-includes/general-template.php |
オプション名からサイト情報を取得する |
get_optionwp-includes/option.php |
オプション名からサイト情報を取得 |
add_optionwp-includes/option.php |
オプション名に値を新規追加 |
update_optionwp-includes/option.php |
オプション名の値を更新、ない場合は新規追加 |
delete_optionwp-includes/option.php |
オプション名の登録情報を削除 |
WordPressのリンクデータの構造とリスト
このテーブルは作成はされるが利用は非推奨とされている。
wp_links |
カラム名 |
型 |
概要 |
link_id | bigint(20) unsigned | |
link_url | varchar(255) | |
link_name | varchar(255) | |
link_image | varchar(255) | |
link_target | varchar(25) | |
link_description | varchar(255) | |
link_visible | varchar(20) | |
link_owner | bigint(20) unsigned | |
link_rating | int(11) | |
link_updated | datetime | |
link_rel | varchar(255) | |
link_notes | mediumtext | |
link_rss | varchar(255) | |