カスタム投稿とカスタムタクソノミーのプラグインなしの設定方法です。
使用テーマや他プラグインと相性が良くない場合や、プラグインを極力減らしたい場合にご活用ください。
更新の可能性のあるテーマ(自作ではないテーマ)の場合は子テーマを作成して、子テーマから下記に進んでください。
カスタム投稿とカスタムタクソノミーの追加
下記をfunction.phpにコピペで追加します。
add_action( 'init', 'create_post_type' );
function create_post_type() {
// ここからカスタム投稿追加
register_post_type('カスタム投稿名',
array(
'label' => '表示名',
'description' => '',
'public' => true, //通常はtrueでいいかと。
'show_ui' => true, //通常はtrueでいいかと。
'show_in_menu' => true, //通常はtrueでいいかと。
'show_in_rest' => false, //trueでカスタム投稿をWP REST APIから取得できる。
'has_archive' => true, //アーカイブの要否の設定。
'exclude_from_search' => false, //サイト内検索の対象にするかどうかの設定。
'capability_type' => 'post', //post(「投稿」)と同等の権限にしますよ、ってこと。
'hierarchical' => true, //階層構造を許可するかどうかの設定。
'rewrite' => array( 'slug' => 'スラッグを指定' ), //デフォルトの代わりに使うカスタム投稿タイプのスラッグの設定。
'query_var' => false, //trueで「https://~/?カスタム投稿タイプ名=個々のカスタム投稿のスラッグ」、falseで「https://~/?post_type=カスタム投稿タイプ名&name=個々のカスタム投稿のスラッグ」で表示
'menu_position' => 5, //この投稿タイプが表示されるメニューの位置。
'supports' => array( //投稿時に使用できる投稿用のパーツの設定。
'title',
'editor',
'revisions',
'thumbnail',
'page-attributes', //記事を新規追加した際に「属性」が表示され、「ページ順序」が利用できるようになる。
'comments'
),
)
);
// ここからカスタムタクソノミー追加
register_taxonomy(
'カスタムタクソノミー名',
'カスタム投稿名', //利用する投稿タイプ
array(
'label' => '表示名',
'singular_label' => '管理画面での表示名',
'show_ui' => true, //通常はtrueでいいかと。
'hierarchical' => true, //trueでカテゴリー、falseでタグの扱いになる。
'query_var' => true, //wp_queryに認識させるかどうかの設定。
'rewrite' => array('slug' => 'スラッグを指定'), //デフォルトの代わりに使うカスタムタクソノミーのスラッグの設定。
'show_admin_column' => true, //カスタム投稿一覧画面でカスタムタクソノミーを表示するかどうかの設定。
)
);
}
複数のカスタム投稿を追加
複数のカスタム投稿やカスタムタクソノミーを作成するときは変数でまとめて記述を減らしましょう。
function create_post_type() {
$customSupports = [
'title',
'editor',
'revisions'
'thumbnail',
];
register_post_type( 'カスタム投稿名',
array(
'label' => '表示名',
'public' => true,
'has_archive' => true,
'menu_position' => 5,
'supports' => $customSupports
)
);
}
add_action( 'init', 'create_post_type' );