wordpress管理画面にカスタム投稿・分類を追加

カスタム投稿(ポスト)・カスタム分類(タクソノミー)を追加するときによく忘れるのでメモ。
register_post_type()関数とregister_taxonomy()関数をinitにフックする。

(テンプレートディレクトリ)/function.php

/**
 * カスタム投稿・分類登録
 */
function regist_customs() {
	
	// カスタム投稿の登録
	register_post_type(
		'product', // 投稿タイプ名称
		array(
			'labels'=> array( // 各種ラベル
				'name' => '商品',
				'singular_name' => '商品',
				'add_new_item' => '商品を追加',
				'add_new' => '商品を追加',
				'new_item' => '商品を追加',
				'edit_item' => '商品を編集',
				'view_item' => '商品を表示',
				'search_item' => '商品を検索',
				'not_found' => '商品は見つかりませんでした',
				'not_found_in_trash' => '商品は見つかりませんでした',
			),
			'description' => '商品の投稿', // 概要
			'public' => true, // 公開
			'publicly_queryable' => true, // クエリ公開
			'show_ui' => true, // UI生成
			'show_in_menu' => true, // メニュー表示
			'query_var' => true, // クエリ変数名。true:投稿タイプ名称
			'rewrite'  => array( // パーマリンクリライト
				'slug' => 'product'
			),
			'capability_type' => 'post', // 権限タイプ(管理者に権限を設けない時はpostでOK)
			'has_archive' => true, // アーカイブを作成する
			'hierarchical'  => false, // 階層を生成する
			'menu_position' => null, // 数値で指定。null:コメントの下
			'supports' => array( // 編集画面に配置するフォーム
				'title',
				'editor'
			),
		)
	);
	// カスタム分類の登録
	register_taxonomy(
		'product_genre', // 分類名
		'product', // 紐づける投稿タイプ名
		array(
			'label' => 'ジャンル', // 複数形
			'public' => true, // 公開
			'show_ui' => true, // UI生成
			'hierarchical' => true, // true:カテゴリー系, false:タグ系
		)
	);
}
add_action('init', 'regist_customs');