WordPress カスタム投稿タイプを追加する方法

WordPress でカスタム投稿タイプを追加する方法を紹介します。
例えば、投稿とは別に製品情報などで投稿タイプを使用したい場合に便利な方法です。

カスタム投稿タイプとは?

WordPress では投稿とは別に任意の投稿タイプのコンテンツを追加することができます。これを属にカスタム投稿タイプといいます。

カスタム投稿タイプの追加方法

カスタム投稿タイプを追加するには、functions.php に次のコードを追加します。


/*【カスタム投稿設定】================================================ */
add_action( 'init', 'custom_post_type' );
function custom_post_type() {
/*【カスタム投稿タイプの追加】 */
register_post_type( 'products', // 投稿タイプのスラッグの指定
array(
'labels' => array(
'name' => __( 'PRODUCTS' ), // メニューに表示されるラベル
'singular_name' => __( 'PRODUCTS' ), // 単体系のラベル
'add_new' => _x('新しく登録する', 'PRODUCTS'), // 新規追加のラベル
'add_new_item' => __('登録する') // 新規項目追加のラベル
),
'public' => true, // 投稿タイプをパブリックにする
'has_archive' => true, // アーカイブを有効にする
'hierarchical' => false, // ページ階層の指定
'menu_position' =>5, // 管理画面上の配置指定
'supports' => array('title','editor','thumbnail','custom-fields','excerpt','author','trackbacks','comments','revisions','page-attributes') // サポートの指定
)
);
}

カスタム投稿を固定ページのように階層構造を持たせるには、 capability_typehierarchical を調整します。


/*【カスタム投稿設定】================================================ */
add_action( 'init', 'custom_post_type' );
function custom_post_type() {
/*【カスタム投稿タイプの追加】 */
register_post_type( 'products', // 投稿タイプのスラッグの指定
array(
'labels' => array(
'name' => __( 'PRODUCTS' ), // メニューに表示されるラベル
'singular_name' => __( 'PRODUCTS' ), // 単体系のラベル
'add_new' => _x('新しく登録する', 'PRODUCTS'), // 新規追加のラベル
'add_new_item' => __('登録する') // 新規項目追加のラベル
),
'public' => true, // 投稿タイプをパブリックにする
'has_archive' => true, // アーカイブを有効にする
'capability_type' => 'page', // 固定ページに変更
'hierarchical' => true, // ページの階層化を有効にする
'menu_position' =>5, // 管理画面上の配置指定
'supports' => array('title','editor','thumbnail','custom-fields','excerpt','author','trackbacks','comments','revisions','page-attributes') // サポートの指定
)
);
}

さらに細かく追加する場合は次のような方法もあります。


/* 【カスタム投稿】カスタム投稿タイプを追加 */
add_action( 'init', 'register_my_cpts' ); // register_my_cpts は固有の名称に変更してください
function register_my_cpts() { // register_my_cpts は固有の名称に変更してください
$labels = array(
"name" => "カスタムポスト名",
"singular_name" => "カスタムポスト名",
"menu_name" => "カスタムポスト名",
"all_items" => "すべての項目",
"add_new" => "新規追加",
"add_new_item" => "新規項目追加",
"edit" => "編集",
"edit_item" => "項目を編集",
"new_item" => "新規項目",
"view" => "表示",
"view_item" => "項目を表示",
"search_items" => "検索項目",
"not_found" => "見つかりません",
"not_found_in_trash" => "ゴミ箱にはありません",
"parent" => "親",
);
$args = array(
"labels" => $labels,
"description" => "",
"public" => true,
"show_ui" => true,
"has_archive" => true,
"show_in_menu" => true,
"exclude_from_search" => false,
"capability_type" => "post",
"map_meta_cap" => true,
"hierarchical" => false,
"rewrite" => array( "slug" => "shop/product", "with_front" => true ), // 出力されるURLを調整する場合に入力
"query_var" => true,
"supports" => array( "title", "editor", "excerpt", "trackbacks", "custom-fields", "comments", "revisions", "thumbnail", "author", "page-attributes", "post-formats" ),
);
register_post_type( "product", $args );
}

まとめ

WordPress でカスタム投稿タイプを追加する方法を紹介しました。

スポンサーリンク

私が続けて読みたい関連記事

私が続けて読みたい関連記事