WordPress カスタム投稿タイプとカスタムタクソノミー(カテゴリー・タグ)の作成
functions.php
// カスタム投稿タイプを作成する
add_action('init', 'add_websites_post_type');
function add_websites_post_type() {
$params = array(
'labels' => array(
'name' => 'サイト',
'singular_name' => 'サイト',
'add_new' => '新規追加',
'add_new_item' => 'サイトを新規追加',
'edit_item' => 'サイトを編集する',
'new_item' => '新規サイト',
'all_items' => 'サイト一覧',
'view_item' => 'サイトの説明を見る',
'search_items' => '検索する',
'not_found' => 'サイトが見つかりませんでした。',
'not_found_in_trash' => 'ゴミ箱内にサイトが見つかりませんでした。'
),
'public' => true,
'has_archive' => true,
'supports' => array(
'title',
'editor',
'author',
'custom-fields',
),
'taxonomies' => array('websites_category','websites_tag')
);
register_post_type('websites', $params);
}
// カスタム投稿タイプ(websites)用のカテゴリ&タグを作成する
add_action('init', 'create_websites_taxonomies');
function create_websites_taxonomies() {
// カテゴリを作成
$labels = array(
'name' => 'Webカテゴリ', //複数系のときのカテゴリ名
'singular_name' => 'Webカテゴリ', //単数系のときのカテゴリ名
'search_items' => 'Webカテゴリを検索',
'all_items' => '全てのWebカテゴリ',
'parent_item' => '親カテゴリ',
'parent_item_colon' => '親カテゴリ:',
'edit_item' => 'Webカテゴリを編集',
'update_item' => 'Webカテゴリを更新',
'add_new_item' => '新規Webカテゴリを追加',
'new_item_name' => '新規Webカテゴリ',
'menu_name' => 'Webカテゴリ' //ダッシュボードのサイドバーメニュー名
);
$args = array(
'hierarchical' => true,
'labels' => $labels,
'rewrite' => array( 'slug' => 'websites_cat' )
);
register_taxonomy( 'websites_category', 'websites', $args );
// タグを作成
$labels = array(
'name' => 'Webタグ', //複数系のときのタグ名
'singular_name' => 'Webタグ', //単数系のときのタグ名
'search_items' => 'Webタグを検索',
'all_items' => '全てのWebタグ',
'parent_item' => null,
'parent_item_colon' => null,
'edit_item' => 'Webタグを編集',
'update_item' => 'Webタグを更新',
'add_new_item' => '新規Webタグを追加',
'new_item_name' => '新規Webタグ',
'separate_items_with_commas' => 'Webタグをコンマで区切る',
'add_or_remove_items' => 'Webタグを追加or削除する',
'choose_from_most_used' => 'よく使われているWebタグから選択',
'not_found' => 'アイテムは見つかりませんでした',
'menu_name' => 'Webタグ' //ダッシュボードのサイドバーメニュー名
);
$args = array(
'hierarchical' => false, //trueでタグをチェックボックス化
'labels' => $labels,
'update_count_callback' => '_update_post_term_count', //タグの動作に必要なCallback設定
'rewrite' => array( 'slug' => 'websites_tag' )
);
register_taxonomy( 'websites_tag', 'websites', $args );
}