先日友人のサイトの制作を手伝ったときに、カスタム投稿タイプを設定しました。個人でブログサイトを運営している上ではほとんど使わない感じですが、商業向けのサイトをワードプレスで構築するにはとても便利です。その導入方法の備忘録です。
カスタム投稿タイプの使い道
普段ワードプレスに慣れている人にとっては、カスタム投稿タイプはなど余計なものに見えがちです。
「投稿」の中の別カテゴリーで処理すればいいのでは…、と私も思っていました。
でも、ワードプレスに慣れていない人にとっては、自分でカテゴリーを作ること自体が大変なようです。また、投稿する際にカテゴリーを付け忘れて、「投稿が表示されない」と騒ぎになる場合も…。
その点、カスタム投稿タイプなら、管理画面左側のメニューに「お知らせ」「日記」「新製品」などとわかりやすく表示できるので、余計な混乱が避けられます。
カスタム投稿タイプ導入コード
カスタム投稿タイプを導入するには、function.phpにそのためのphp文を書かなければなりません。
私自身、その意味するところはわからないまでも、何とかひとつのパターンはつかんだので、雛形を以下に記します。
まず、管理画面の左側メニューに表示される「表示されるカスタム投稿名(漢字かなOK)」と「内部処理用のラベル(漢字かなを避ける)」を用意します。
たとえば、「表示されるカスタム投稿名」として「お知らせ」を、「内部処理用のラベル」として「oshirase」を用意した場合、
register_post_type('oshirase', array(
'label' => 'oshirase',
'description' => '(適当な説明文を書く)',
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'capability_type' => 'post',
'hierarchical' => false,
'has_archive' => 'oshirase',
'menu_position' => 27,
'rewrite' => array('slug' => ''),
'query_var' => true,
'exclude_from_search' => false,
'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes',),
'labels' => array (
'name' => 'お知らせ',
'singular_name' => 'お知らせ',
'menu_name' => 'お知らせ',
'add_new' => '新規追加',
'add_new_item' => 'お知らせ新規追加',
'edit' => 'Edit',
'edit_item' => 'お知らせを編集する',
'new_item' => 'New お知らせ',
'view' => '表示',
'view_item' => '表示',
'search_items' => 'Search お知らせ',
'not_found' => 'No お知らせ Found',
'not_found_in_trash' => 'No お知らせ Found in Trash',
'parent' => 'Parent お知らせ',
),) );
となります。
あとは、これを状況に応じて変化させて、function.phpに書き込めばカスタム投稿タイプなんて怖くないです。