カスタム投稿タイプ: WordPress

WordPressは、投稿タイプがいくつかあって、自分で追加することもできる。

ビルトインの投稿タイプには、post, pageといった馴染みのあるものから、rivision, attachmentといったものまであるが、内容は投稿としてwp_postsテーブルに格納される。
例えばattachmentは、メディアアップローダーからアップロードした画像情報を格納する(画像時代はwp-content/uploadsにアップロードされる)。

自分で追加した投稿タイプの投稿内容も、他と同様にwp_postsテーブルに格納される。

sample投稿タイプを作成する例

function create_example_post_type(){
    $labels = [
        'name' => 'サンプル',
        'singular_name' => 'サンプル',
        'add_new' => 'サンプルを追加',
        'add_new_item' => '新しいサンプルを追加',
        'edit_item' => 'サンプルを編集',
        'new_item' => '新しいサンプル',
        'view_item' => 'サンプルを編集',
        'search_items' => 'サンプルを探す',
        'not_found' => 'サンプルはありません',
        'not_found_in_trash' => 'ゴミ箱にサンプルはありません',
        'parent_item_colon' => '',
    ];
    $args = [
        'labels' => $labels,
        'public' => true,
        'capability_type' => 'post',
        'hierarchical' => false,
        'supports' => [
            'title'
        ],
    ];
    register_post_type('example', $args);
}

add_action('init', 'create_example_post_type');

example投稿タイプの投稿内容は、上述のようにwp_postsへ保存される(post_typeフィールドがexampleになる)。
ここで、投稿内容自体ではなくて、投稿タイプのメタ情報(サンプルコードの$labels$argsの内容)ともいうべき情報はどこに格納されているのかが気になった。

投稿タイプを追加する前と後でDBをダンプして比較しても、それらしきデータは、追加されていなかった。
それらの情報はDBに保存されるわけではなく、ランタイムに取得されている。

ref.
https://wordpress.stackexchange.com/questions/49581/where-are-wordpress-custom-types-stored

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。