カスタム投稿タイプを作って、カスタムタクソノミーを紐付ける

あああ という名前のカスタム投稿タイプを追加して、「いいい」というカスタム投稿タイプを紐付けるためにfunctions.phpに貼り付けるものです。

下記の設定だと、カスタム投稿タイプは、

  • スラッグはxxx
  • 名前はあああ
  • archive-xxx.phpでアーカイブを表示できる

となり、カスタム分類は、

  • スラッグはyyy
  • 名前はいいい

で表示されるようになります。

<?php

add_action( 'init', 'create_customPostType_xxx' );
function create_customPostType_xxx() {

	$label_arr = array(
		'name' => 'あああ',
		'singular_name' => 'あああ',
		'search_items' => 'あああを検索する',
		'add_new' => 'あああを追加する',
		'add_new_item' => 'あああを追加する',
		'edit_item' => 'あああを編集する',
		'new_item' => '新規あああ',
		'view_item' => 'あああを表示',
		'not_found' => 'あああはありません',
		'not_found_in_trash' => 'ゴミ箱にあああはありません',
		// 'parent_item_colon' => '' //非階層タイプでは利用しない
	);

	$conf_array = array(
		'labels' => $label_arr,
		'public' => true, // とにかくtrueにしとくべし。検索できたりQueryいじったりできなくなる
		'publicly_queryable' => true, // Query操作したいからtrue
		'show_ui' => true, // falseだとUIが表示されない
		'query_var' => false, //
		'rewrite' => true, //
		'capability_type' => 'post', // 権限タイプ post なら投稿権限がある人に表示される的な
		'hierarchical' => false, // 親子があるかどうか trueだとページ、falseだと投稿みたいになるのか
		'menu_position' => 5, // 5投稿、10メディア、15リンク、20固定ページ、25コメント、60外観、65プラグイン、70ユーザ、75ツール、80設定、100最下部に独立
		// 'supports' => array('title','editor','thumbnail','custom-fields','excerpt','author','trackbacks','comments','revisions','page-attributes'), //page-attributesはhierarchicalがtrueじゃないとだめ
		'supports' => array('title','editor','custom-fields'),
		// 'menu_icon' => '', // url
		'rewrite' => true, // rewriteするかどうか
		'show_in_nav_menus' => true, // ナビゲーションメニューに表示するかどうか
		'has_archive' => true,
	);

	register_post_type( 'xxx', $conf_array );

}

add_action( 'init', 'add_customTaxonomy_yyy' );
function add_customTaxonomy_yyy() {
	// create a new taxonomy
	register_taxonomy(
		'yyy',
		'xxx',
		array(
			'label' => 'いいい',
			'show_ui' => true,
			'query_var' => true,
			'sort' => true,
			'hierarchical' => true,
			'args' => array( 'orderby' => 'term_order' ),
			'rewrite' => array( 'slug' => 'yyy' ),
			'show_admin_column' => true,
		)
	);
}

↓ プラグインを作る方々への本、書きました。 ↓

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です