「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」の続編にあたり、PHPの「データ構造」(配列とオブジェクト)について解説します。
配列やオブジェクトは、頭の中で考えるだけでは、イメージがつかみにくいです。本書では図を多用して、配列やオブジェクトをなるべく分かりやすく解説することを心がけました。
Kindle本で、定価250円です。
カスタム投稿タイプとカスタム分類を組み合わせる(その1)
WordPress 3.0のカスタム投稿タイプの機能では、カスタム投稿を「カスタム分類」という機能で分類することができます。
この方法を紹介します。
1.カスタム分類とは?
WordPressでは、ブログの投稿をカテゴリーとタグで分類することができます。
ただ、扱うデータ構造によっては、カテゴリーとタグ以外の分類方法を追加したいこともあり得ます。
例えば、賃貸の物件だと、地域や間取りといった分類方法が考えられます。
そこで、WordPressでは、「カスタム分類」という機能があります。
カスタム分類は、タグ/カテゴリー以外の分類方法を追加する機能です。
「地域」や「間取り」といった分類を追加することができます。
また、カスタム分類では、カテゴリーのように階層がある分類と、タグのように階層がない分類を作ることができます。
2.カスタム投稿タイプとカスタム分類を組み合わせる
カスタム分類は、カスタム投稿タイプと組み合わせることができます。
前述の例だと、「物件」というカスタム投稿タイプを追加し、それを「地域」や「間取り」のカスタム分類で分類する、といった使い方が考えらえられます。
以下の画面は、「物件」のカスタム投稿タイプに、「地域」と「間取り」のカスタム分類を追加した場合の、物件作成の画面の例です。
地域は階層あり(カテゴリー型)、間取りは階層なし(タグ型)にしています。
また、地域/間取りのカスタム分類の編集等は、カテゴリ/タグと同様の画面で行うことができます。
3.カスタム投稿タイプ/カスタム分類を追加するコードの例
カスタム分類を追加するには、「register_taxonomy」という関数を使います。
以下のリストは、「物件」のカスタム投稿タイプを追加して、それに「地域」「間取り」のカスタム分類を組み合わせる例です。
このリストを、テーマの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); $args = array( 'label' => '地域', 'labels' => array( 'name' => '地域', 'singular_name' => '地域', 'search_items' => '地域を検索', 'popular_items' => 'よく使われている地域', 'all_items' => 'すべての地域', 'parent_item' => '親地域', 'edit_item' => '地域の編集', 'update_item' => '更新', 'add_new_item' => '新規地域を追加', 'new_item_name' => '新しい地域', ), 'public' => true, 'show_ui' => true, 'hierarchical' => true, ); register_taxonomy('area', 'realestate', $args); $args = array( 'label' => '間取り', 'labels' => array( 'name' => '間取り', 'singular_name' => '間取り', 'search_items' => '間取りを検索', 'popular_items' => 'よく使われている間取り', 'all_items' => 'すべての間取り', 'edit_item' => '間取りの編集', 'update_item' => '更新', 'add_new_item' => '新規間取りを追加', 'new_item_name' => '新しい間取り', 'choose_from_most_used' => 'よく使われている間取りから選択' ), 'public' => true, 'show_ui' => true, 'hierarchical' => false, 'show_tagcloud' => true ); register_taxonomy('layout', 'realestate', $args); } add_action('init', 'add_realestate_type');
なお、register_taxonomy関数の書き方は、後日紹介します。
4.カスタム投稿タイプ/カスタム分類関係の記事の一覧
カスタム投稿タイプ/カスタム分類関係のその他の記事は、以下のリンクから参照できます。
- WordPress 3.0のカスタム投稿タイプ機能(その1)
- WordPress 3.0のカスタム投稿タイプ機能(その2)
- カスタム投稿タイプとカスタム分類を組み合わせる(その1)
- カスタム投稿タイプ/カスタム分類関連のページの出力
- register_taxonomy関数の書き方
「WordPressで学ぶPHPとMySQL」発売中です。
WordPressを通して、PHPとMySQLの基本をマスターするための本(PDF)です。
詳細は特設ページにて。