WordPress:新規カスタム投稿タイプの作成とタクソノミーの追加

「投稿」以外の、独自のカスタム投稿タイプを作成した時のメモ。プラグインは不使用。基本的にfunction.phpに追記していきます。作成したカスタム投稿タイプへの、カテゴリーとタグの追加方法も記載しています。

01. 新規のカスタム投稿タイプを作成する

function.phpに、新規カスタム投稿タイプ作成についての記載を追加します。複数の追加が必要であれば、中身だけコピペ&投稿タイプ名などを変更してください。

function.php
add_action( 'init', 'create_post_type' );
function create_post_type() {
// ↓ 複数追加の場合は、ここをコピー -----------------------------------------
// カスタム投稿タイプ
register_post_type(
'demo', // 任意のカスタム投稿タイプ名
array(
'labels' => array(
'name' => __( 'デモ' ), // 投稿画面に表示
'singular_name' => __( 'デモ' ), // 投稿画面に表示
'all_items' =>__('記事一覧') // 投稿画面に表示
),
'public' => true,
'menu_position' =>5, // 投稿画面での表示位置
)
);
// ----------------------------------------- 複数追加の場合は、ここをコピー ↑

// ↓ ここにペースト -----------------------------------------

// ----------------------------------------- ここにペースト ↑
}

出力するには、既存のsingle.phpを複製し、single-demo.phpを作成します。

single-任意のカスタム投稿タイプ名.php

※ファイル名single-demodemoには、「任意のカスタム投稿タイプ名」で付けた名前と同じ文字列が入ります。

02. 新規のタクソノミー(カテゴリー・タグ)を作成する

作成したカスタム投稿タイプを確認すると、「記事一覧」と「新規追加」の機能しかありません。これに個別の「カテゴリ」と「タグ」の機能も追加します。

基本的には、カスタム投稿タイプの記述の下に、カテゴリーとタグに関する記述を追加すればOKです。タグがいらない場合は、タグの箇所を削除してください。

function.php
add_action( 'init', 'create_post_type' );
function create_post_type() {
// カスタム投稿タイプ
register_post_type(
'demo',
array(
'labels' => array(
'name' => __( 'デモ' ),
'singular_name' => __( 'デモ' ),
'all_items' =>__('記事一覧')
),
'public' => true,
'menu_position' =>5,
)
);

// ↓ 追加分 -----------------------------------------
// カテゴリー
register_taxonomy(
        'demo_cat', // 任意の名前
        'demo', // 紐づける投稿タイプ名
array(
'hierarchical' => true, // ここが「true」でカテゴリーになる
'label' => 'カテゴリ',
'show_ui' => true,
'query_var' => true,
'rewrite' => true,
'singular_label' => 'カテゴリ'
)
);

// タグ
register_taxonomy(
'demo_tag', // 任意の名前
'demo', // 紐づける投稿タイプ名
array(
'hierarchical' => false, // ここが「false」でタグになる
'label' => 'タグ',
'show_ui' => true,
'query_var' => true,
'rewrite' => true,
'singular_label' => 'タグ'
)
);
// ----------------------------------------- 追加分 ↑
}
URLをコピーする