WordPressでカテゴリー(タクソノミ)を含んだカスタム投稿タイプを複数設定する方法・手順

テーマ内のfunctions.phpに下記コードを追加します。

下記では「カスタム投稿」と「トピックス」というカスタム投稿タイプを追加しています。

function new_post_type(){

    // ▼▼▼カスタム投稿▼▼▼
    $custom_post_name_1 = 'カスタム投稿'; //適宜名称変更
    $custom_post_slug_1 = 'custom';     //適宜スラッグを変更

    $args = array(
        'slug' => $custom_post_slug_1,
        'label' => $custom_post_name_1,
        'labels' => array(
            'singular_name' => $custom_post_name_1
        ),
        'has_archive' => true,
        'public' => true,
        'show_ui' => true,
        'query_var' => true,
        'capability_type' => 'post',
        'hierarchical' => false,
        'menu_position' => 4,
        'supports' => array('title','editor','thumbnail',
                          'excerpt','comments','custom-fields')
    );
    register_post_type($custom_post_slug_1 , $args);
    
    $args = array(
      'label' => $custom_post_name_1 . 'カテゴリ',
      'public' => true,
      'show_ui' => true,
      'hierarchical' => true,
    );
    register_taxonomy( $custom_post_slug_1 . 'cat' , $custom_post_slug_1 , $args);

    flush_rewrite_rules(false); 

    // ▲▲▲カスタム投稿▲▲▲  

    // ▼▼▼カスタム投稿▼▼▼
    $custom_post_name_2 = 'トピックス';  //適宜名称変更
    $custom_post_slug_2 = 'topics';   //適宜スラッグを変更

    $args = array(
        'slug' => $custom_post_slug_2,
        'label' => $custom_post_name_2,
        'labels' => array(
            'singular_name' => $custom_post_name_2
        ),
        'has_archive' => true,
        'public' => true,
        'show_ui' => true,
        'query_var' => true,
        'capability_type' => 'post',
        'hierarchical' => false,
        'menu_position' => 4,
        'supports' => array('title','editor','thumbnail',
                          'excerpt','comments','custom-fields')
    );
    register_post_type($custom_post_slug_2 , $args);
    
    $args = array(
      'label' => $custom_post_name_2 . 'カテゴリ',
      'public' => true,
      'show_ui' => true,
      'hierarchical' => true,
    );
    register_taxonomy( $custom_post_slug_2 . 'cat' , $custom_post_slug_2 , $args); 

    flush_rewrite_rules(false);

    // ▲▲▲カスタム投稿▲▲▲  

}
add_action('init', 'new_post_type');

以上です。

  • このエントリーをはてなブックマークに追加
スポンサーリンク
スポンサーリンク