ワードプレスのデータはどのようにデータベースに保存される?

ワードプレスのデータの保存は大きく分けて画像等のファイルと、テキストや設定データの保存の2つに分けられます。画像等のファイルはサーバー上のuploadフォルダにファイルが配置されます。

その他の設定データやテキストファイルは様々なワードプレスの独自の仕組みでデータベースに保存されます。

このページではワードプレスがどのようにデータベースに独自の関数でデータを保存しているのかをプログラムレベルで見ていきます。

投稿データの保存 wp_insert_post

wp_insert_postは投稿のテキストデータを保存される際に使われる関数です。最もよくサイトで使用されている関数であるかと思います。
書式は下記のようになります。

$insertpost = array (
    'post_type' => 'post', //ポストタイプ
    'post_title' => $your_title, //タイトル
    'post_content' => $your_content, //コンテンツの内容
    'post_status' => 'publish', //公開非公開等の投稿のステータス
    'comment_status' => 'closed',  //コメントの許可
    'ping_status' => 'closed',  //ピングバックの許可
)
$post_id = wp_insert_post($insertpost);

wp_insert_postには挿入したい投稿の様々な情報をまとめた配列が渡されて投稿が保存されます。保存が成功すると上記の例では$post_id に一意の投稿idが返ってくるようになっています。

保存されるデータベースのテーブル wp_posts

ワードプレス全体の設定情報の保存 add_option,update_option,delete_option

add_option,update_option,delete_optionはワードプレス全体の設定を保存されるために、テーマ、プラグイン等様々な場所で使われる関数になります。

設定を追加する

add_option( '設定名', '設定値' );

設定を更新する

update_option(  '設定名', '設定値' );

設定を削除する

delete_option(  '設定名' );

のように1行のプログラムでワードプレスの設定を書き込んだり、更新したりできます。設定を読み込む場合は get_option( ‘設定名’, ‘この設定がない場合に返す値’ );
のようにこちらも1行で取得できます。

保存されるデータベースのテーブル wp_options

一時保存 set_transient

set_transientはワードプレスのデータベース上に期限付きの値(期限が過ぎると消去されます)を保存できる仕組みです。
下記のような書式でトランジエントの値を作成できます。

set_transient( 'トランジエント名', '設定値', 残存時間秒数);

トランジエント値は下記のような書式で取得できます。このトランジエント値がすでに期限を迎えている場合やもともとない場合はFalseを返します。

get_transient( 'トランジエント名');

保存されるデータベースのテーブル wp_options

投稿のカスタムフィールドの値などの投稿の補佐情報の保存 add_post_meta,update_post_meta,delete_post_meta

add_post_meta,update_post_meta,delete_post_metaは投稿のカスタムフィールドの値などの投稿(もしくはページやカスタムポスト)の補佐情報(メタ値)を保存してくれる関数です。

投稿メタ値の作成・保存

add_post_meta( ポストID整数, 'この投稿におけるメタ値の設定名', '設定値', true );

最後のtrueはこの設定値が必ず一つの値をとるかという設定になります。投稿のメタ値は同じ設定名で複数保存することも可能です。

投稿メタ値の更新

update_post_meta( ポストID整数, 'この投稿におけるメタ値の設定名', '設定値','更新前の値※なくても可' );

投稿メタ値の削除

delete_post_meta( ポストID整数, 'この投稿におけるメタ値の設定名', '削除前の値※なくても可' );

のように使用されます。投稿メタ値の値を呼び出して使うには下記のような書式のプログラムを使います。

$value = get_post_meta( ポストID整数, 'この投稿におけるメタ値の設定名', true );

最後のtrueの部分をfalseにすると、配列で値が返ってきます。

保存されるデータベースのテーブル wp_postmeta

その他ユーザー情報のメタ値update_user_meta、コメント情報のメタ値update_comment_metaという関数もあります。この場合投稿メタ値で「ポストID整数」で指定していた部分にユーザーIDやコメントIDを指定して関数を利用する形になります。

このコンテンツは役に立ちましたか?

関連コンテンツ

コメントを投稿する


上の計算式の答えを入力してください