WordPress 3.0のカスタム投稿タイプ機能(その1)

カスタム投稿タイプの追加例WordPress 3.0はRC1がリリースされていて、正式版のリリースが近づいています。

WordPress 3.0の新機能の1つに、「カスタム投稿タイプ」があります。
この機能は、WordPressをCMS的に使う上でキーになると思います。
そこで、カスタム投稿タイプ機能について、数回に分けて紹介します。

(※)カスタム投稿タイプの関数はWordPress 2.9で追加されていますが、新機能としてプッシュされるのは3.0からです。

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

例えば、小規模な不動産業のサイトを、WordPressで作りたいとします。
物件の情報をWordPressで管理して、一覧表示等できるようにしたいとします。
また、そのサイトには、社長ブログも付けたいとします。

これまでのWordPressで上記のようなサイトを作る場合、以下のような手順をとることが多かったのではないかと思います。

  • 物件用のカテゴリを作り、その下にサブカテゴリを作って、物件の情報を投稿として入力します。
  • 社長ブログのカテゴリを作って、その下にサブカテゴリを作って、社長ブログの投稿を入力します。

ただ、このような構造はあまり美しいとは言えません。
また、物件と社長ブログの投稿を分けて出力するために、テンプレートにいろいろと手を加えることも出てきます。

カスタム投稿タイプは、上記のような問題をより良い形にすることができる機能です。
投稿/ページ以外に、独自のタイプのデータを扱うことができるようになります。

例えば、例に挙げた不動産サイトの例だと、以下のような手順を取ることが考えられます。

  • ブログに「物件」というカスタム投稿タイプを追加し、物件の情報はそちらに入力します。
  • 社長ブログの記事は、通常の投稿として入力します。

2.カスタム投稿タイプの追加例

前述の例のように、「物件」というカスタム投稿タイプを追加したいとします。
この場合、テーマのfunctions.phpテンプレートの最後に、以下のような記述を追加します。

function add_realestate_type() {
  $args = array(
    'label' => '物件',
    'labels' => array(
      '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,
    'capability_type' => 'post',
    'hierarchical' => false,
    'menu_position' => 5,
    'supports' => array('title','editor','author','thumbnail',
                                    'excerpt','comments','custom-fields')
  ); 
  register_post_type('realestate', $args);
}

これで、以下の画面のように、「物件」というカスタム投稿タイプのデータを入力することができるようになります。

「物件」のカスタム投稿タイプ

次回は、上で出てきたregister_post_type関数の使い方を解説する予定です。

3.カスタム投稿タイプ/カスタム分類関係の記事の一覧

カスタム投稿タイプ/カスタム分類関係のその他の記事は、以下のリンクから参照できます。

WordPressで学ぶPHPとMySQLWordPressで学ぶPHPとMySQL」発売中です。
WordPressを通して、PHPとMySQLの基本をマスターするための本(PDF)です。
詳細は特設ページにて。