拙著「上手に稼ぐカラ売りテクニック」が発売されました。
株価が下がる局面で利益を得ることができる「空売り」について、詳しく解説した本です。
自由国民社刊で、定価1,512円(税込)です。
WordPress 3.0のカスタム投稿タイプ機能(その2)
先日の記事で、カスタム投稿タイプの例を紹介しました。
今日は、カスタム投稿タイプを登録する「register_post_type」関数の使い方を解説します。
1.register_post_type関数の概要
register_post_type関数は、WordPressにカスタム投稿タイプを登録する働きをします。
基本的な書き方は以下の通りです。
register_post_type(カスタム投稿タイプ名, パラメータの配列)
「カスタム投稿タイプ名」は、登録したいカスタム投稿タイプに合わせて、その名前を英単語で指定します。
例えば、物件を表すカスタム投稿タイプを追加するなら、カスタム投稿タイプ名は「realestate」等にすると良いでしょう。
また、「パラメータの配列」には、register_post_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);
2.パラメータの配列の指定方法
前述したように、register_post_type関数の2つ目のパラメータには、各種のパラメータを連想配列に入れて渡します。
その連想配列の要素名と、要素ごとの設定の内容は、以下の通りです。
2-1.label
カスタム投稿タイプの名前を指定します。
ここで指定した名前が、ウィンドウ左端のメニューに表示されます。
例えば、物件を表すカスタム投稿タイプを追加するなら、label要素の値は「物件」にすれば良いでしょう。
2-2.labels
カスタム投稿タイプ関連の管理画面に表示するラベルを指定します。
管理画面上での位置と、そこに表示するラベルの対応は、連想配列の形で表します。
この連想配列の要素名と、要素ごと設定の内容は、以下の通りです。
要素名 | 設定内容 |
---|---|
name | カスタム投稿タイプ名の複数形 |
singular_name | カスタム投稿タイプ名の単数形 |
add_new_item | カスタム投稿の新規作成ページの左上に表示されるタイトル |
add_new | メニューの「新規」の位置に表示するラベル |
new_item | カスタム投稿一覧ページの右上の方にある新規作成ボタンのラベル |
edit_item | カスタム投稿編集ページの左上に表示されるタイトル |
view_item | カスタム投稿編集ページの「○○を表示」ボタンのラベル |
search_items | カスタム投稿一覧ページの検索ボタンのラベル |
not_found | カスタム投稿を追加していない状態で、カスタム投稿一覧ページを開いたときに表示するメッセージ |
not_found_in_trash | カスタム投稿をゴミ箱に入れていない状態で、カスタム投稿のゴミ箱ページを開いたときに表示するメッセージ |
各設定と、実際の管理画面上での対応は、以下の各画面のようになっています。
2-3.description
カスタム投稿タイプの概要文を指定します。
2-4.public
WordPressのCodexのページでは、「このカスタム投稿タイプを管理画面に表示するかどうかを指定する」というような記述があります。
ただ、こちらで試した限りでは、管理画面に表示するかどうかは、後述する「show_ui」で決まるようです。
2-5.publicly_queryable
この値をtrueにすると、メインページのアドレスの最後に「?post_type=カスタム投稿タイプ名」を付けると、そのカスタム投稿タイプの最新記事一覧を出力できるようになります。
なお、この値の指定を省略した場合、publicに指定した値と同じ設定になります。
2-6.exclude_from_search
検索からカスタム投稿タイプを除外したい場合は、この値をtrueに設定します。
なお、この値の指定を省略した場合、publicに指定した値の逆の設定になります。
2-7.show_ui
管理画面にカスタム投稿タイプの作成や一覧のページを表示する場合は、この値をtrueに設定します。
一方、この値をfalseに設定すると、管理画面上ではこのカスタム投稿タイプを操作することができません。
なお、この値の指定を省略した場合、publicに指定した値と同じ設定になります。
2-8.capability_type
カスタム投稿タイプに割り当てる権限のタイプを指定します。
例えば、「capability_type => 'post'」とすれば、投稿を編集できるユーザーは、そのカスタム投稿タイプも編集できるようになります。
また、独自の権限を指定して、その権限があるユーザーにだけ、カスタム投稿タイプの操作を許可するようにすることもできます。
この詳細は、後日に別途解説する予定です。
2-9.hierarchical
この値をtrueに設定すると、固定ページのように、カスタム投稿に親子関係を持たせることができます。
一方、この値をfalseにすると、投稿のように、親子関係を持たせないようになります。
2-10.supports
カスタム投稿タイプの編集/新規作成のページに表示する入力欄を、文字列の配列で指定します。
指定する文字列と、表示される入力欄の対応は、以下の通りです。
文字列 | 入力欄 |
---|---|
title | タイトル |
editor | 本文 |
author | 作成者 |
thumbnail | アイキャッチ画像 |
excerpt | 抜粋 |
comments | コメント一覧 |
trackbacks | トラックバック送信 |
custom-fields | カスタムフィールド |
revisions | リビジョン |
page-attributes | 属性(hierarchicalをtrueに設定している場合のみ指定) |
例えば、「supports => array('title', 'editor')」とすると、カスタム投稿の編集/新規作成のページには、タイトルと本文の入力欄だけが表示されます。
2-11.register_meta_box_cb
カスタムフィールドの入力欄を設定するための関数名を指定します。
この件については、後日に別途解説する予定です。
2-12.taxonomies
カスタム投稿を分類するためのカスタム分類の情報を指定します。
この件については、後日に別途解説する予定です。
2-13.menu_position
カスタム投稿の一覧/追加のメニューを追加する位置を指定します。
「menu_position => 5」とすると、「投稿」の下にメニューが追加されます。
「menu_position => 10」とすると、「メディア」の下にメニューが追加されます。
以後、5刻みで値を増やすことで、メニューを追加する位置を1つずつ下に下げることができます。
2-14.menu_icon
カスタム投稿のメニューに表示するアイコンのURLを指定します。
この指定がない場合は、投稿のアイコン(ピンの絵柄)がそのまま使われます。
2-15.rewrite
「rewrite => true」に設定し、かつWordPressのパーマリンク設定をデフォルト以外に設定している場合、「http://ブログのアドレス/カスタム投稿タイプ名/個々のカスタム投稿のスラッグ/」のアドレスで、そのカスタム投稿のページを開くことができるようになります。
また、この値を「rewrite => array('slug' => 'スラッグ')」のようにすると、「http://ブログのアドレス/スラッグ/個々のカスタム投稿のスラッグ/」のアドレスで、そのカスタム投稿のページを開くことができるようになります。
なお、rewriteを行う場合、register_post_type関数を実行した後に「$wp_query->flush_rules();」を実行して、rewriteのルールを設定しなおす必要があるようです。
2-16.query_var
「query_var => true」に設定すると、「http://ブログのアドレス/?カスタム投稿タイプ名=個々のカスタム投稿のスラッグ」のアドレスで、そのカスタム投稿のページを開くことができるようになります。
一方、「query_var => false」に設定すると、「http://ブログのアドレス/?post_type=カスタム投稿タイプ名&name=個々のカスタム投稿のスラッグ」のアドレスで、そのカスタム投稿のページを開くことができるようになります。
2-17.can_export
「can_export => true」とすると、カスタム投稿をエクスポートすることができるようになります。
一方、「can_export => false」とすると、カスタム投稿をエクスポートすることができなくなります。
2-18.show_in_nav_menus
「show_in_nav_menus => true」とすると、カスタムメニューにカスタム投稿を追加することができるようになります。
一方、「show_in_nav_menus => false」とすると、カスタムメニューにカスタム投稿を追加することができなくなります。
3.カスタム投稿タイプ/カスタム分類関係の記事の一覧
カスタム投稿タイプ/カスタム分類関係のその他の記事は、以下のリンクから参照できます。
- WordPress 3.0のカスタム投稿タイプ機能(その1)
- WordPress 3.0のカスタム投稿タイプ機能(その2)
- カスタム投稿タイプとカスタム分類を組み合わせる(その1)
- カスタム投稿タイプ/カスタム分類関連のページの出力
- register_taxonomy関数の書き方
「WordPressで学ぶPHPとMySQL」発売中です。
WordPressを通して、PHPとMySQLの基本をマスターするための本(PDF)です。
詳細は特設ページにて。