カスタム投稿タイプを複数作成

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

// カスタム投稿タイプを作成
// 商品投稿タイプ
add_action('init', 'shop_custom_post_type');
function shop_custom_post_type()
{
$labels = array(
'name' => _x('商品ページ', 'post type general name'),
'singular_name' => _x('商品ページ', 'post type singular name'),
'add_new' => _x('商品を追加', 'shop'),
'add_new_item' => __('新しい商品を追加'),
'edit_item' => __('商品を編集'),
'new_item' => __('新しい商品'),
'view_item' => __('商品を編集'),
'search_items' => __('商品を探す'),
'not_found' => __('商品はありません'),
'not_found_in_trash' => __('ゴミ箱に商品はありません'),
'parent_item_colon' => ''
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'rewrite' => true,
'capability_type' => 'post',
'hierarchical' => true,
'menu_position' => 20,
'has_archive' => true,
'supports' => array('title','editor','author','excerpt','comments'),
'taxonomies' => array('shop_category','shop_tag')
);
register_post_type('shop',$args);
// カスタムタクソノミーを作成
//カテゴリータイプ
$args = array(
'label' => 'カテゴリー',
'public' => true,
'show_ui' => true,
'hierarchical' => true
);
register_taxonomy('shop_category','shop',$args);
//タグタイプ
$args = array(
'label' => 'タグ',
'public' => true,
'show_ui' => true,
'hierarchical' => false
);
register_taxonomy('shop_tag','shop',$args);
$labels = array(
'name' => _x('ネックレス', 'post type general name'),
'singular_name' => _x('ネックレス', 'post type singular name'),
'add_new' => _x('商品を追加', 'necklace'),
'add_new_item' => __('新しい商品を追加'),
'edit_item' => __('商品を編集'),
'new_item' => __('新しい商品'),
'view_item' => __('商品を編集'),
'search_items' => __('商品を探す'),
'not_found' => __('商品はありません'),
'not_found_in_trash' => __('ゴミ箱に商品はありません'),
'parent_item_colon' => ''
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'rewrite' => true,
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => 20,
'has_archive' => true,
'supports' => array('title','editor','author','excerpt','comments'),
'taxonomies' => array('necklace_category','necklace_tag')
);
register_post_type('necklace',$args);
// カスタムタクソノミーを作成
//カテゴリータイプ
$args = array(
'label' => 'カテゴリー',
'public' => true,
'show_ui' => true,
'hierarchical' => true
);
register_taxonomy('necklace_category','necklace',$args);
//タグタイプ
$args = array(
'label' => 'タグ',
'public' => true,
'show_ui' => true,
'hierarchical' => false
);
register_taxonomy('necklace_tag','necklace',$args);
flush_rewrite_rules( false );
}

なお、設定は間違っていないのにいくらやっても
カスタム投稿タイプで404エラー(ページが見つかりません)が出る場合は
flush_rewrite_rules( false );を最後に追加すると見れるようになります。
※上記、例には入れてあります。