今回はプラグインを使わずカスタム投稿タイプを追加する方法のメモです。
以下のコードをfunction.phpに追記してください。
カスタム投稿タイプを「 sample 」・カスタム投稿名を「 サンプル 」とします。
タクソノミーなしの場合
function sample_custom_post_type() {
register_post_type('sample', array(
'labels' => array(
'name' => 'サンプル',
'singular_name' => 'サンプル',
'add_new_item' => '新規をサンプル追加',
'add_new' => '新規追加',
'new_item' => '新規サンプル',
'view_item' => 'サンプルを表示',
'not_found' => 'サンプルは見つかりませんでした',
'not_found_in_trash' => 'ゴミ箱にサンプルはありません。',
'search_items' => 'サンプルを検索',
),
'public' => true,
'show_ui' => true,
'query_var' => true,
'hierarchical' => false,
'menu_position' => 5,
'supports' => array('title','editor'),
'rewrite' => true,
));
}
add_action('init', 'sample_custom_post_type');
タクソノミーありの場合
function sample_custom_post_type() {
register_post_type('sample', array(
'labels' => array(
'name' => 'サンプル',
'singular_name' => 'サンプル',
'add_new_item' => '新規をサンプル追加',
'add_new' => '新規追加',
'new_item' => '新規サンプル',
'view_item' => 'サンプルを表示',
'not_found' => 'サンプルは見つかりませんでした',
'not_found_in_trash' => 'ゴミ箱にサンプルはありません。',
'search_items' => 'サンプルを検索',
),
'public' => true,
'show_ui' => true,
'query_var' => true,
'hierarchical' => false,
'menu_position' => 5,
'supports' => array('title','editor'),
'rewrite' => true,
'has_archive' => 'sample',
));
register_taxonomy('sample_category', 'sample', array(
'label' => 'カテゴリ',
'public' => true,
'show_ui' => true,
'hierarchical' => true,
));
}
add_action('init', 'sample_custom_post_type');
おまけ
WordPressでは通常の投稿の名称は「投稿」になっていますが、これを分かりやすい文字に変更したい場合があります。
今回は「 ニュース 」に変更したいと思います。
以下のコードをfunction.phpに追記してください。
function custom_post_labels( $labels ) {
$labels->name = 'ニュース'; // 投稿
$labels->singular_name = 'ニュース'; // 投稿
$labels->add_new = '新規追加'; // 新規追加
$labels->add_new_item = 'ニュースを追加'; // 新規投稿を追加
$labels->edit_item = '投稿の編集'; // 投稿の編集
$labels->new_item = '新規ニュース'; // 新規投稿
$labels->view_item = 'ニュースを表示'; // 投稿を表示
$labels->search_items = 'ニュースを検索'; // 投稿を検索
$labels->not_found = 'ニュースが見つかりませんでした。'; // 投稿が見つかりませんでした。
$labels->not_found_in_trash = 'ゴミ箱内にニュースが見つかりませんでした。'; // ゴミ箱内に投稿が見つかりませんでした。
$labels->parent_item_colon = ''; // (なし)
$labels->all_items = 'ニュース一覧'; // 投稿一覧
$labels->archives = 'ニュースアーカイブ'; // 投稿アーカイブ
$labels->insert_into_item = 'ニュースに挿入'; // 投稿に挿入
$labels->uploaded_to_this_item = 'このニュースへのアップロード'; // この投稿へのアップロード
$labels->featured_image = 'アイキャッチ画像'; // アイキャッチ画像
$labels->set_featured_image = 'アイキャッチ画像を設定'; // アイキャッチ画像を設定
$labels->remove_featured_image = 'アイキャッチ画像を削除'; // アイキャッチ画像を削除
$labels->use_featured_image = 'アイキャッチ画像として使用'; // アイキャッチ画像として使用
$labels->filter_items_list = 'ニュースリストの絞り込み'; // 投稿リストの絞り込み
$labels->items_list_navigation = 'ニュースリストナビゲーション'; // 投稿リストナビゲーション
$labels->items_list = 'ニュースリスト'; // 投稿リスト
$labels->menu_name = 'ニュース'; // 投稿
$labels->name_admin_bar = 'ニュース'; // 投稿
return $labels;
}
add_filter( 'post_type_labels_post', 'custom_post_labels' );