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()関数を組み合わせて使用します。

関連コンテンツ

↑