以前作成したカスタム投稿にカスタムタクソノミーを設定してみます。
サンプルコード
カスタムタクソノミーにはカテゴリー形式とタグ形式の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');
カテゴリーに合わせてタグも追加することができました。
【参考サイト】
コメントが承認されるまで時間がかかります。