harumemo

メモ書きです。

wordpressのカスタム分類とカスタム投稿タイプに関するメモ

□カスタム分類

$labels = array(
 "name" => "イベントカテゴリ)",    ※管理画面の上部に<H2>タグで表示されるタイトル。
 "label" => "tx-events",
 "menu_name" => "イベントカテゴリ", ※左のナビゲーションメニューに表示される文字列。
);


$args = array(
  "labels" => $labels,
  "hierarchical" => true, ※trueならカテゴリに、falseだとタグになる。わかるか!
  "label" => "events",
  "show_ui" => true,
  "query_var" => true,
  "show_tagcloud" => false, ※どうやら聞かない様子。 http://www.h-fj.com/blog/archives/2010/08/26-152442.php
  "rewrite" => array( 'slug' => 'tx-event', 'with_front' => true ),
  "show_admin_column" => true, ※投稿一覧画面のカラムとしてみせるか否か。
);
register_taxonomy( "tx-event", array( "event" ), $args ); ※カスタム分類から投稿を指定する場合は、arrayの中に書く。
register_taxonomy( "tx-event", array(), $args ); ※ここでは指定せずに、カスタム投稿から、カスタム分類を指定する方法もある。ただし、その場合、カスタム分類はカスタム投稿より前に定義(functions.phpなら上に書く)する必要がある。


□カスタム投稿タイプ

「register_post_type()」は、かならず"init"アクションの中から呼び出す必要がある。

⇒従って : add_action( 'init', 'my_event_init' );


==

register_post_type( "event", $args );

ここで"event"は、投稿タイプ名となる。

==

 

$labels = array(
 "name" => "イベント・セミナー",      ※管理画面の上部に<H2>タグで表示されるタイトル。
 "singular_name" => "event",
 "menu_name" => "イベント・セミナー",   ※左のナビゲーションメニューに表示される文字列。
 "all_items" => "イベント・セミナー一覧", ※左のナビゲーションメニュー(開いた状態)に表示される文字列。
);

 $args = array(
  "labels" => $labels, ※上記の配列をここに格納。
  "description" => "",
  "public" => true,  ※ほぼお決まりか。
  "show_ui" => true, ※ほぼお決まりか。
  "has_archive" => false, ※アーカイブ(一覧)ページをつくる場合はtrue(archive-event.phptとなる。URL的には「/{singular_name}/」となる。)。
  "show_in_menu" => true, ※管理画面にこの投稿タイプを表示するかどうか。表示するには show_ui が true の必要あり。
  "exclude_from_search" => false,
  "capability_type" => "post", ※ほぼお決まりか。「page」とすることもできる。基本は投稿扱い?
  "map_meta_cap" => true, ※ほぼお決まりか。
  "hierarchical" => false, ※「true」にすれば親が指定できる。「capability_type」を「page」にしない限りfalseか。
  "rewrite" => array( "slug" => "event" ※パーマリンク構造のスラッグ。, "with_front" => true ※パーマリンクに影響),
  "query_var" => true,
  "menu_position" => 5, ※「5」ならば投稿の下に表示される。「10」ならばメディアの下。Codex参照。
  "supports" => array( "title","editor", "custom-fields", "revisions" ),
  "taxonomies" => array( "events" ) ※この投稿タイプで使用する、タクソノミーを指定する。タクソノミー(カスタム分類)は register_taxonomy() で登録する必要がある。
 );

  register_post_type( "event", $args );