【Wordpress】カスタム投稿タイプを複数設定する

電脳備忘録

本記事のソースコードの利用によって生じた損害について、当方は一切の責任を負いません。ご自身の判断と責任のもとで参照・ご利用ください。

この記事は最終更新から3年以上経過しています。

カスタム投稿タイプを複数設定数にはfunction.phpに下記のように書けば、それぞれのカスタム投稿タイプとカテゴリ・タグを設定できるみたい。

add_action( 'init', 'create_post_type' );
  function create_post_type() {
    //カスタム投稿タイプ1
    register_post_type( 'custompost1',
      array(
        //設定を書く
      )
    );
    
    //カスタム投稿タイプ2
    register_post_type( 'custompost2',
      array(
        //設定を書く
      )
    );
    
    //カスタム投稿タイプ1のカテゴリ
    register_taxonomy(
      'post1-cat',  // 追加するタクソノミー名(英小文字とアンダースコアのみ)
      'custompost1',  // どのカスタム投稿タイプに追加するか
        array(
          //設定を書く
        )
    );
    //カスタム投稿タイプ1のタグ
    register_taxonomy(
      'post1-tag', 
      'custompost1', 
      array(
        //設定を書く
      )
    );
  
    //カスタム投稿タイプ2のカテゴリ
    register_taxonomy(
      'post2-cat',  // 追加するタクソノミー名(英小文字とアンダースコアのみ)
      'custompost2',  // どのカスタム投稿タイプに追加するか
        array(
          //設定を書く
        )
    );
    //カスタム投稿タイプ2のタグ
    register_taxonomy(
      'post2-tag', 
      'custompost2', 
      array(
        //設定を書く
      )
    );
  
  }

お知らせとスタッフブログというカスタム投稿タイプを設定したかったので下記のように書きました。とりあえず動いているのでよしとしますか・・・。

//カスタム投稿タイプの追加
  add_action( 'init', 'create_post_type' );
  function create_post_type() {
    //お知らせ
    register_post_type( 'news',
      array(
        'label' => 'お知らせ',  // 管理画面の左メニューに表示されるテキスト
        'public' => true,  // 投稿タイプをパブリックにするか否か
        'has_archive' => true,  // アーカイブを有効にするか否か
        'menu_position' => 5,  // 管理画面上でどこに配置するか今回の場合は「投稿」の下に配置
        'supports' => $EditorStyle,  // 投稿画面でどのmoduleを使うか的な設定
        'rewrite' => array(
          'single' => 'menu',
          'with_front' => false
        )
      )
    );
    //スタッフブログ
    register_post_type( 'staff-blog',
      array(
        'label' => 'スタッフブログ', 
        'public' => true, 
        'has_archive' => true, 
        'menu_position' => 6, 
        'supports' => $EditorStyle, 
        'rewrite' => array(
          'single' => 'menu',
          'with_front' => false
        )
      )
    );
  
    //お知らせ-カテゴリ
    register_taxonomy(
      'news-cat',  // 追加するタクソノミー名(英小文字とアンダースコアのみ)
      'news',  // どのカスタム投稿タイプに追加するか
      array(
        'label' => 'カテゴリー',  // 管理画面上に表示される名前(投稿で言うカテゴリー)
        'labels' => array(
          'all_items' => 'カテゴリ一覧',  // 投稿画面の右カラムに表示されるテキスト(投稿で言うカテゴリー一覧)
          'add_new_item' => 'カテゴリの追加'  // 投稿画面の右カラムに表示されるカテゴリ追加リンク
        ),
        'hierarchical' => true,  // タクソノミーを階層化するか否か(子カテゴリを作れるか否か)
        'rewrite' => array(
          'single' => 'menu/category',
          'with_front' => false
        ),
        'public' => true,
        'show_ui' => true
      )
    );
  
    //お知らせ-タグ
    register_taxonomy(
      'news-tag', 
      'news', 
      array(
        'hierarchical' => false, 
        'update_count_callback' => '_update_post_term_count',
        'label' => 'タグ',
        'singular_label' => 'タグ',
        'public' => true,
        'show_ui' => true
      )
    );
  
    //スタッフブログ-カテゴリ
    register_taxonomy(
      'staff-blog-cat', 
      'staff-blog', 
      array(
        'label' => 'カテゴリー', 
        'labels' => array(
          'all_items' => 'カテゴリ一覧', 
          'add_new_item' => 'カテゴリの追加' 
        ),
        'hierarchical' => true,
        'rewrite' => array(
          'single' => 'menu/category',
          'with_front' => false
        ),
        'public' => true,
        'show_ui' => true
      )
    );
  
    //スタッフブログ-タグ
    register_taxonomy(
      'staff-blog-tag', 
      'staff-blog', 
      array(
        'hierarchical' => false, 
        'update_count_callback' => '_update_post_term_count',
        'label' => 'タグ',
        'singular_label' => 'タグ',
        'public' => true,
        'show_ui' => true
      )
    );
  }

細かくラベルを設定するにはこんな感じで書けばいいみたい

register_post_type( 'success-story',  
    array(
    'labels'        => array(
    'name'          => '成功事例', //管理画面などで表示する名前
    'singular_name' => '成功事例', //管理画面などで表示する名前(単数形)
    'all_items' => '成功事例一覧',
    'menu_name'     => '成功事例', //管理画面メニューで表示する名前(nameより優先される)
    'add_new_item'  => '成功事例の新規投稿', //新規作成ページのタイトルに表示される名前
    'not_found'     => '見つかりません。', //一覧ページに投稿が見つからなかったときに表示
    'not_found_in_trash' => 'ゴミ箱にはありません。' //ゴミ箱に何も入っていないときに表示
    ),
    'public' => true,   
    'has_archive' => true,   
    'menu_position' => 6,   
    'supports' => $EditorStyle,
    'rewrite' => array(  
    'single' => 'menu',  
    'with_front' => false  
    )  
    )  
    ); 
0%