商品カテゴリー すべての商品 WordPressプラグイン PHPツール Javascriptツール

WordPressのデータベース構造とデータの取得保存方法

▼調査対象 WordPress v6.7.1 (最新版:2024/12/08現在)
データベース構造とデータの取得方法をまとめてみました。
CTRL+F で検索、クリックでソースコードを確認できます。

WordPressのDBテーブルの一覧

WordPressでは標準で12テーブルが作成されます。用途別に分けて確認すると下記のようになります。

用途 テーブル名 個数
記事データwp_posts, wp_postmeta2
コメントwp_comments, wp_commentmeta2
カテゴリーwp_terms, wp_termmeta, wp_term_taxonomy, wp_term_relationships4
ユーザー情報wp_users, wp_usermeta2
サイト情報wp_options1
リンク情報wp_links1

記事やコメント、カテゴリー、ユーザー情報には metaテーブルが存在しています。
他に利用しているプラグインやテーマによってはテーブルは追加されます。

WordPressの投稿データの構造とリスト

投稿、固定ページ、カスタム投稿の他、アイキャッチ画像や更新履歴の情報も保存されている。
投稿データはテーマ上では通常、オブジェクトとして扱われるが、カラム名がそのままプロパティになる。

wp_posts
カラム名 概要
IDbigint(20) unsigned 投稿ID。auto_increment
post_autdorbigint(20) unsigned 投稿の著者ID
post_datedatetime 投稿日時
post_date_gmtdatetime
post_contentlongtext 投稿本文
post_titletext 投稿タイトル
post_excerpttext 投稿の抜粋
post_statusvarchar(20) 投稿ステータス
comment_statusvarchar(20) コメント受付設定
ping_statusvarchar(20) ピングバック受付設定
post_passwordvarchar(255) 閲覧パスワード
post_namevarchar(200) 投稿スラッグ
to_pingtext
pingedtext
post_modifieddatetime 投稿更新日時
post_modified_gmtdatetime
post_content_filteredlongtext フィルター処理後の投稿本文
post_parentbigint(20) unsigned 投稿の親投稿ID
guidvarchar(255) 投稿の識別ID。変更は非推奨。
menu_orderint(11)
post_typevarchar(20) 投稿タイプ。記事以外に添付ファイルや履歴、メニュー情報など様々なデータを受け入れている。
post_mime_typevarchar(100) 投稿がファイルの場合のメディアタイプ
comment_countbigint(20) 投稿のコメント数
wp_postmeta
カラム名 概要
meta_idbigint(20) unsigned 識別ID。auto_increment
post_idbigint(20) unsigned 対象の投稿ID。外部キー。
meta_keyvarchar(255) カスタムフィールド名
meta_valuelongtext カスタムフィールドの値

投稿データの取得と追加、更新、保存のやり方

投稿データの取得や保存は対応するグローバル関数が用意されています。

関数 概要
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_IDbigint(20) unsigned コメントID。auto_increment
comment_post_IDbigint(20) unsigned 対象の投稿ID
comment_authortinytext コメント投稿者
comment_author_emailvarchar(100) コメント投稿者のメールアドレス
comment_author_urlvarchar(200) コメント投稿者のサイトURL
comment_author_IPvarchar(100) コメント投稿者のIPアドレス
comment_datedatetime コメントされた日時
comment_date_gmtdatetime
comment_contenttext コメント本文
comment_karmaint(11)
comment_approvedvarchar(20) コメントの承認状況
comment_agentvarchar(255) コメント投稿者のユーザーエージェント
comment_typevarchar(20) コメント種別。comment, pingback, trackback
comment_parentbigint(20) unsigned コメントの親コメントID
user_idbigint(20) unsigned コメント投稿者のユーザーID
wp_commentmeta
カラム名 概要
meta_idbigint(20) unsigned 識別ID。auto_increment
comment_idbigint(20) unsigned 対象のコメントID。外部キー。
meta_keyvarchar(255) メタキー名
meta_valuelongtext メタ情報の値

コメントデータの取得と追加、更新、保存のやり方

コメントデータの取得や保存は対応するグローバル関数が用意されています。

関数 概要
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_idbigint(20) unsigned カテゴリー(ターム)ID。auto_increment
namevarchar(200) カテゴリーの表記
slugvarchar(200) カテゴリーのスラッグ。主にurlに使われる英字。
term_groupbigint(10)
wp_termmeta
カラム名 概要
meta_idbigint(20) unsigned 識別ID。auto_increment
term_idbigint(20) unsigned 対象のカテゴリー(ターム)ID。外部キー。
meta_keyvarchar(255) メタキー
meta_valuelongtext メタ情報の値
wp_term_taxonomy
カラム名 概要
term_taxonomy_idbigint(20) unsigned 識別ID。auto_increment
term_idbigint(20) unsigned 対象のカテゴリー(ターム)ID。外部キー。
taxonomyvarchar(32) カテゴリーの分類。category, post_tag, link_category, nav_menu, カスタムタクソノミー名などが入る
descriptionlongtext カテゴリーの説明
parentbigint(20) unsigned カテゴリーの親カテゴリーID
countbigint(20) カテゴリーに所属する記事数
wp_term_relationships
カラム名 概要
object_idbigint(20) unsigned 対象のID。外部キー。投稿IDなどが入る。
term_taxonomy_idbigint(20) unsigned wp_term_taxonomyの識別ID。外部キー。
term_orderint(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
カラム名 概要
IDbigint(20) unsigned ユーザーID。auto_increment
user_loginvarchar(60) ログイン名
user_passvarchar(255) ログインパスワード
user_nicenamevarchar(50) 著者情報のスラッグ
user_emailvarchar(100) ユーザーのメールアドレス
user_urlvarchar(100) ユーザーのサイトURL
user_registereddatetime ユーザーが登録された日時
user_activation_keyvarchar(255) パスワード再発行用のアクティベーションキー
user_statusint(11) ユーザーのステータス
display_namevarchar(250) ブログ上の表示名
wp_usermeta
カラム名 概要
umeta_idbigint(20) unsigned 識別ID。auto_increment
user_idbigint(20) unsigned 対象のユーザーID。外部キー。
meta_keyvarchar(255) メタキー名
meta_valuelongtext メタ情報の値

ユーザーデータの取得と追加、更新、保存のやり方

ユーザーデータの取得や保存は対応するグローバル関数が用意されています。

関数 概要
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_idbigint(20) unsigned 識別ID。auto_increment
option_namevarchar(191) オプション名。主にキーとなる英字。
option_valuelongtext オプションの値
autoloadvarchar(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_idbigint(20) unsigned
link_urlvarchar(255)
link_namevarchar(255)
link_imagevarchar(255)
link_targetvarchar(25)
link_descriptionvarchar(255)
link_visiblevarchar(20)
link_ownerbigint(20) unsigned
link_ratingint(11)
link_updateddatetime
link_relvarchar(255)
link_notesmediumtext
link_rssvarchar(255)
著者情報
著者情報

Webサイト開発者。PHP/Javascript の開発実績2,000件以上。クラウドソーシング経由では700件ほどの受注実績あり。