WordPressのカスタム投稿タイプでカテゴリー設定をする方法

どうも、ホワイトです。

WordPressでカスタム投稿タイプの設定については、プラグインを使わない方法として、こちらに書きました。

カスタム投稿タイプも通常の投稿と同様にカテゴリーやタグでの分類を行うことができるので、今回はその設定方法です。

カスタム投稿でカテゴリーにあたるカスタムタクソノミーを設定する

カスタム投稿タイプのカテゴリー的な役割をカスタムタクソノミーと言います。

カテゴリーと覚えてしまっても大丈夫なような気もしますが、一応正式名称は覚えておいてください。

投稿タイプ名を「blog」とした場合の設定例を紹介します。
もちろん、こちらもカスタム投稿タイプの設定時と同様にfunctions.phpに記述していきます。

register_taxonomy(
    'blogcat', //カテゴリータイプのカスタムタクソノミー名
    'blog', //カスタムタクソノミーを使う投稿タイプ名、ここではblog
    array(
        'label' => 'ブログカテゴリー', //ラベル名
        'labels' => array(
            'menu_name' => 'カテゴリー' //管理画面に表示するメニュー名
        ),
        'rewrite' => array('slug' => 'blog'),
        'public' => true,
        'hierarchical' => true, //カテゴリー使用するならtrue
        'has_archive' => true,
        'query_var' => true,
        'show_admin_column' => true,
    )
);

上記では「blog」というカスタム投稿タイプ専用の「ブログカテゴリー」というカスタムタクソノミーが設定されました。

これで通常投稿と同じく、カテゴリー分けをすることができます。

カスタム投稿でタグにあたるカスタムタクソノミーを設定する

カテゴリーが設定できるなら、当然タグのようにカスタムタクソノミーを設定することもできます。

register_taxonomy(
    'blogtag', //タグタイプのカスタムタクソノミー名
    'blog', //カスタムタクソノミーを使う投稿タイプ名、ここではblog
    array(
        'label' => 'ブログタグ', //ラベル名
        'labels' => array(
            'menu_name' => 'タグ' //管理画面に表示するメニュー名
        ),
        'rewrite' => array('slug' => 'blog-tag'), //投稿タイプのスラッグ
        'public' => true, //公開状態
        'hierarchical' => false, //タグ使用するならfalse
        'has_archive' => true,
        'query_var' => true,
        'show_admin_column' => true,
    )
);

これでカテゴリーとしても、タグとしてもカスタムタクソノミーを使用できます。

それぞれ、カテゴリー、タグとして分類されたものをタームと呼びます。

自分はここら辺で頭に???が浮かんできて、実際に理解するまで少し時間を要しました。

関係性としては以下のような形になります。

WordPressでサイトを作っていれば使う機会も自ずと多くなってくると思うので、まずはどんどん使ってみて覚えていってください。

注意点としてはカテゴリーとタグで分けて使っているようでも、元は同じタームなので、それぞれの名称などが被らないように設定を行ってください。