カスタムポストタイプ
カスタムポストタイプを使うと、標準の「投稿」「固定ページ」以外に、「お知らせ」「事例紹介」「スタッフ紹介」といった独自のコンテンツタイプを作成できます。
register_post_type()での登録
<?php
function my_theme_register_post_types() {
register_post_type('case_study', array(
'labels' => array(
'name' => '事例紹介',
'singular_name' => '事例',
),
'public' => true,
'has_archive' => true,
'menu_icon' => 'dashicons-portfolio',
'supports' => array('title', 'editor', 'thumbnail'),
'rewrite' => array('slug' => 'case-studies'),
));
}
add_action('init', 'my_theme_register_post_types');
プラグイン化も検討カスタムポストタイプの定義は、テーマではなくプラグインとして実装することも推奨されます。テーマを切り替えた際にデータ構造ごと消えてしまうことを防げるためです。
専用テンプレートの作成
カスタムポストタイプ用のテンプレートは、投稿タイプ名を使ったファイル名(例:single-case_study.php、archive-case_study.php)で自動的に認識されます。
カスタムタクソノミーとの組み合わせ
カスタムポストタイプに独自のカテゴリー・タグ(カスタムタクソノミー)を持たせたい場合は、register_taxonomy()関数を組み合わせて使用します。