以前作成したカスタム投稿にカスタムタクソノミーを設定してみます。
サンプルコード
カスタムタクソノミーにはカテゴリー形式とタグ形式の2種類に分類できます。
まずはカテゴリー形式のカスタムタクソノミーの作成と、いくつかオプションを設定してみます。
functions.php
以前の記事のコードに追加しています。
function create_posttype() {
register_post_type('cly_item',
array(
~ 省略 ~
)
);
// カスタムタクソノミーを作成(カテゴリー)
register_taxonomy('cly_item_cat', 'cly_item',
array(
'label' => 'カテゴリー', // ラベルを指定。個別に指定したい場合は'labels'を使う
'public' => true, // タクソノミーは(パブリックに)検索可能にするかどうか。
'show_in_quick_edit' => true, // 投稿のクイック編集でこのタクソノミーを表示するかどうか
'show_admin_column' => true, // 投稿一覧のテーブルにこのタクソノミーのカラムを表示するかどうか
'description' => '商品のカテゴリーです', // タクソノミーの簡潔な説明
'hierarchical' => true, // trueの場合はカテゴリーのような階層あり(子を持つ)タクソノミー、falseの場合はタグのような階層化しないタクソノミーになる
'rewrite' => array( // タクソノミーのパーマリンクのリライト方法を変更
'slug' => 'items', // パーマリンク構造のスラッグを変更
'with_front' => false, // パーマリンクの前にfrontベースを入れるかどうか
'hierarchical' => true, // 階層化したURLを使用可能にするかどうか
),
)
);
}
add_action('init', 'create_posttype');
管理画面を確認してみると、カテゴリーが追加できていることが確認できました。

| register_taxonomy($taxonomy, $object_type, $args) |
タクソノミーの追加や上書きをする関数。 $taxonomy: タクソノミーの名前を英小文字と_で32文字以下で指定。 $object_type: タクソノミーオブジェクトのオブジェクト名を指定。 $args: オプションを指定。 |
|---|
カスタムタクソノミーをカテゴリー形式にするかタグ形式にするかはhierarchicalで設定します。
カテゴリーの時はtrueにしましたが、falseにすることでタグ形式にできます。
functions.php
function create_posttype() {
register_post_type('cly_item',
array(
~ 省略 ~
)
);
// カスタムタクソノミーを作成(カテゴリー)
register_taxonomy('cly_item_cat', 'cly_item',
array(
~ 省略 ~
)
);
// カスタムタクソノミーを作成(タグ)
register_taxonomy('cly_item_tag', 'cly_item',
array(
'label' =>'タグ',
'hierarchical' => false,
)
);
}
add_action('init', 'create_posttype');
カテゴリーに合わせてタグも追加することができました。

【参考サイト】
コメントが承認されるまで時間がかかります。