▼調査対象
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) | |