WordPressは、投稿タイプがいくつかあって、自分で追加することもできる。
ビルトインの投稿タイプには、post
, page
といった馴染みのあるものから、rivision
, attachment
といったものまであるが、内容は投稿としてwp_posts
テーブルに格納される。
例えばattachmentは、メディアアップローダーからアップロードした画像情報を格納する(画像時代はwp-content/uploads
にアップロードされる)。
自分で追加した投稿タイプの投稿内容も、他と同様にwp_posts
テーブルに格納される。
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.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。