当サイト、Codex 日本語版は今後積極的な更新は行わない予定です。後継となる新ユーザーマニュアルは、https://ja.wordpress.org/support/ にあります。
万が一、当サイトで重大な問題を発見した際などは、フォーラムWordSlack #docs チャンネルでお知らせください。</p>

「利用者:Gblsm/関数リファレンス/register taxonomy」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
56行目: 56行目:
 
{{Parameter|label|文字列|タクソノミーの'''複数形'''の名前。翻訳の対象。|オプション|''$labels->name'' で上書きされる。}}
 
{{Parameter|label|文字列|タクソノミーの'''複数形'''の名前。翻訳の対象。|オプション|''$labels->name'' で上書きされる。}}
  
{{Parameter|labels|配列|タクソノミーに付けるラベルの配列。デフォルトでは、階層のないタクソノミーにはタグのラベルが、階層化したタクソノミーにはカテゴリーのラベルが使われる。|オプション|空(指定しない)の場合、label の値が name に入り、name の値が singular_name に入る。}}
+
{{Parameter|labels|配列|タクソノミーに付けるラベルの配列。デフォルトでは、階層のないタクソノミーにはタグのラベルが、階層化したタクソノミーにはカテゴリーのラベルが使われます。|オプション|空(指定しない)の場合、label の値が name に入り、name の値が singular_name に入る。}}
 
:* ''''name'''' - タクソノミーの一般的な名前(普通は複数形)。 $tax->label によって上書きされて同じになる。デフォルトは <code>_x( 'Post Tags', 'taxonomy general name' )</code> または <code>_x( 'Categories', 'taxonomy general name' )</code> 。この文字列を国際化するときは、[[I18n_for_WordPress_Developers#Disambiguation_by_context|gettext context]] を使用してカスタム投稿タイプに合わせてください。例: <code>_x('Writers', 'taxonomy general name');</code>
 
:* ''''name'''' - タクソノミーの一般的な名前(普通は複数形)。 $tax->label によって上書きされて同じになる。デフォルトは <code>_x( 'Post Tags', 'taxonomy general name' )</code> または <code>_x( 'Categories', 'taxonomy general name' )</code> 。この文字列を国際化するときは、[[I18n_for_WordPress_Developers#Disambiguation_by_context|gettext context]] を使用してカスタム投稿タイプに合わせてください。例: <code>_x('Writers', 'taxonomy general name');</code>
 
:* ''''singular_name'''' - タクソノミーのオブジェクト 1 個の名前(単数形)。デフォルトは <code>_x( 'Post Tag', 'taxonomy singular name' )</code> または <code>_x( 'Category', 'taxonomy singular name' )</code> 。この文字列を国際化するときは、[[I18n_for_WordPress_Developers#Disambiguation_by_context|gettext context]] を使用してカスタム投稿タイプに合わせてください。例: <code>_x('Writer', 'taxonomy singular name');</code>
 
:* ''''singular_name'''' - タクソノミーのオブジェクト 1 個の名前(単数形)。デフォルトは <code>_x( 'Post Tag', 'taxonomy singular name' )</code> または <code>_x( 'Category', 'taxonomy singular name' )</code> 。この文字列を国際化するときは、[[I18n_for_WordPress_Developers#Disambiguation_by_context|gettext context]] を使用してカスタム投稿タイプに合わせてください。例: <code>_x('Writer', 'taxonomy singular name');</code>
75行目: 75行目:
 
:* ''''not_found'''' (バージョン 3.6 以降) - 項目が一つもないときにタクソノミーのメタボックスで「よく使われている項目から選択」をクリックすると表示される文字列。階層のあるタクソノミーには使われません。デフォルトは <code>__( 'No tags found.' )</code> または null
 
:* ''''not_found'''' (バージョン 3.6 以降) - 項目が一つもないときにタクソノミーのメタボックスで「よく使われている項目から選択」をクリックすると表示される文字列。階層のあるタクソノミーには使われません。デフォルトは <code>__( 'No tags found.' )</code> または null
  
{{Parameter|public|真偽値|タクソノミーを検索可能にするかどうか。|オプション|true}}
+
{{Parameter|public|真偽値|true にすると、タクソノミーは(パブリックに)検索可能になります。|オプション|true}}
 
<!-- If the taxonomy should be publicly queryable. -->
 
<!-- If the taxonomy should be publicly queryable. -->
  
{{Parameter|show_ui|真偽値|タクソノミーを管理するためにデフォルトの UI を用意するかどうか。|オプション|無指定の場合、デフォルトで ''public'' 引数の値が入ります。[[Version_3.5|バージョン 3.5]] 以降は、これを <strong>false</strong> にするとタクソノミーの管理 UI を隠します。}}
+
{{Parameter|show_ui|真偽値|true にすると、タクソノミーを管理するためにデフォルトの UI を用意します。|オプション|無指定の場合、デフォルトで ''public'' 引数の値が入ります。[[Version_3.5|バージョン 3.5]] 以降は、これを <strong>false</strong> にするとタクソノミーの管理 UI を隠します。}}
 
<!-- setting this to false for attachment taxonomies will hide the UI. -->
 
<!-- setting this to false for attachment taxonomies will hide the UI. -->
  
{{Parameter|show_in_nav_menus|真偽値|true にするとナビゲーションメニューでこのタクソノミーを選択できます。|オプション|無指定の場合、デフォルトで ''public'' 引数の値が入ります。}}
+
{{Parameter|show_in_nav_menus|真偽値|true にすると、ナビゲーションメニューでこのタクソノミーを選択できます。|オプション|無指定の場合、デフォルトで ''public'' 引数の値が入ります。}}
  
{{Parameter|show_tagcloud|真偽値|タグクラウドのウィジェットがこのタクソノミーを使うかどうか。|オプション|無指定の場合、デフォルトで ''show_ui'' 引数の値が入ります。}}
+
{{Parameter|show_tagcloud|真偽値|true にすると、タグクラウドのウィジェットがこのタクソノミーを使います。|オプション|無指定の場合、デフォルトで ''show_ui'' 引数の値が入ります。}}
  
 
{{Parameter|meta_box_cb|callback|メタボックスを表示するためのコールバック関数を指定できます。([[Version 3.8|バージョン 3.8]] 以降で利用可能)|オプション|null}}
 
{{Parameter|meta_box_cb|callback|メタボックスを表示するためのコールバック関数を指定できます。([[Version 3.8|バージョン 3.8]] 以降で利用可能)|オプション|null}}
 
'''参考:''' デフォルトは、階層のあるタクソノミーならカテゴリー用メタボックス( <tt>meta-boxes.php</tt> にある <tt>post_categories_meta_box()</tt> )、階層化しないタクソノミーならタグ用メタボックス( <tt>post_tags_meta_box()</tt> )になります。false を指定するとメタボックスを表示しません。
 
'''参考:''' デフォルトは、階層のあるタクソノミーならカテゴリー用メタボックス( <tt>meta-boxes.php</tt> にある <tt>post_categories_meta_box()</tt> )、階層化しないタクソノミーならタグ用メタボックス( <tt>post_tags_meta_box()</tt> )になります。false を指定するとメタボックスを表示しません。
  
{{Parameter|show_admin_column|真偽値|関連付けられた投稿タイプのテーブルにタクソノミーのカラムを自動生成するかどうか。([[Version_3.5|バージョン 3.5]] 以降で利用可能)|オプション|false}}
+
{{Parameter|show_admin_column|真偽値|true にすると、関連付けられた投稿タイプのテーブルにタクソノミーのカラムを自動生成します。([[Version_3.5|バージョン 3.5]] 以降で利用可能)|オプション|false}}
  
{{Parameter|hierarchical|真偽値|カテゴリーのような階層あり(子を持つ)タクソノミーか、そうではなくタグのような階層化しないタクソノミーか。|オプション|false}}
+
{{Parameter|hierarchical|真偽値|true ならカテゴリーのような階層あり(子を持つ)タクソノミー、false ならタグのような階層化しないタクソノミー。|オプション|false}}
  
 
'''参考:''' 階層のあるタクソノミーの場合、投稿の編集ページにあるタクソノミー管理ボックスに、既存カテゴリーを選択できるチェックボックス付きリストを表示します(デフォルトの投稿カテゴリーのように)。階層化しないタクソノミーの場合、投稿に付けるタクソノミーのタームをタイプ入力するための空のテキストフィールドだけを表示します(デフォルトの投稿タグのように)。
 
'''参考:''' 階層のあるタクソノミーの場合、投稿の編集ページにあるタクソノミー管理ボックスに、既存カテゴリーを選択できるチェックボックス付きリストを表示します(デフォルトの投稿カテゴリーのように)。階層化しないタクソノミーの場合、投稿に付けるタクソノミーのタームをタイプ入力するための空のテキストフィールドだけを表示します(デフォルトの投稿タグのように)。
  
{{Parameter|update_count_callback|文字列|A function name that will be called when the count of an associated ''$object_type'', such as post, is updated. Works much like a hook.|オプション|None - but see Note, below.}}
+
{{Parameter|update_count_callback|文字列|関連付けられた ''$object_type''(例えば投稿)の個数が更新された時に呼び出される関数の名前。フックによく似た動作になります。|オプション|ありませんが、下記の「参考」を見てください。}}
  
'''Note:''' While the default is <tt><nowiki>''</nowiki></tt>, when actually performing the count update in <tt>wp_update_term_count_now()</tt>, if the taxonomy is only attached to <tt>post</tt> types (as opposed to other WordPress objects, like <tt>user</tt>), the built-in <tt>_update_post_term_count()</tt> function will be used to count only published posts associated with that term, otherwise <tt>_update_generic_term_count()</tt> will be used instead, that does no such checking.
+
'''参考:''' デフォルトは <tt><nowiki>''</nowiki></tt> です。この場合、<tt>wp_update_term_count_now()</tt> の中でカウントを実際に更新するとき、次のような動作になります。もしタクソノミーが <tt>post</tt> タイプだけに付けられているなら(<tt>user</tt> のような他の WordPress オブジェクトではなく)、組み込みの <tt>_update_post_term_count()</tt> 関数を使って、タームに関連付けられた公開済み投稿だけをカウントします。そうでなければ <tt>_update_generic_term_count()</tt> を使って、そのようなチェックを行わずにカウントします。
  
This is significant in the case of '''attachments'''. Because an attachment is a type of <tt>post</tt>, the default <tt>_update_post_term_count()</tt> will be used. However, this may be undesirable, because this will only count attachments that are actually attached to another post (like when you insert an image into a post). This means that attachments that you simply upload to WordPress using the Media Library, but do not actually attach to another post will '''not''' be counted. If your intention behind associating a taxonomy with attachments was to leverage the Media Library as a sort of Document Management solution, you are probably more interested in the counts of unattached Media items, than in those attached to posts. In this case, you should force the use of <tt>_update_generic_term_count()</tt> by setting '_update_generic_term_count' as the value for <tt>update_count_callback</tt>.
+
これは'''添付'''の場合に違いがはっきりします。添付は <tt>post</tt> の一種であるため、デフォルトの <tt>_update_post_term_count()</tt> が使われます。しかし、他の投稿へ実際に付けられた(画像を投稿へ挿入したような)添付だけがカウントされるため、これはおそらく期待外れでしょう。つまり、メディアライブラリーを使って WordPress へアップロードしてあっても、投稿へ付けていない添付はカウント'''されません'''。もし、あなたが添付にタクソノミーを付ける理由が、メディアライブラリーをドキュメント管理ソリューションのように使おうというのなら、投稿に付けられたものだけでなく付けられていないメディア項目もカウントしたいでしょう。その場合、<tt>update_count_callback</tt> の値に '_update_generic_term_count' を指定すれば、<tt>_update_generic_term_count()</tt> の使用を強制できます。
  
{{Parameter|query_var|真偽値または文字列|False to disable the query_var, set as string to use custom query_var instead of default which is $taxonomy, the taxonomy's "name".|オプション|$taxonomy}}
+
{{Parameter|query_var|真偽値または文字列|false にすると query_var を無効化します。文字列を指定すると、デフォルトの $taxonomy(タクソノミーの「名前」)の代わりに、それがカスタム query_var になります。|オプション|$taxonomy}}
  
'''Note:''' The query_var is used for direct queries through WP_Query like <code>new WP_Query(array('people'=>$person_name))</code> and URL queries like <code>/?people=$person_name</code>. Setting query_var to false will disable these methods, but you can still fetch posts with an explicit WP_Query taxonomy query like <code>WP_Query(array('taxonomy'=>'people', 'term'=>$person_name))</code>.
+
'''参考:''' query_var は、<code>new WP_Query(array('people'=>$person_name))</code> のような WP_Query による直接クエリと、<code>/?people=$person_name</code> のような URL クエリに使われます。query_var を false にすると何れの方法も使えなくなりますが、それでも <code>WP_Query(array('taxonomy'=>'people', 'term'=>$person_name))</code> のようにタクソノミーを直接指定したクエリで投稿を取得できます。
  
 
{{Parameter|rewrite|真偽値/配列|Set to false to prevent automatic URL rewriting a.k.a. "pretty permalinks". Pass an ''$args'' array to override default URL settings for permalinks as outlined below:|オプション|true}}
 
{{Parameter|rewrite|真偽値/配列|Set to false to prevent automatic URL rewriting a.k.a. "pretty permalinks". Pass an ''$args'' array to override default URL settings for permalinks as outlined below:|オプション|true}}

2014年7月19日 (土) 18:18時点における版

お知らせ: 翻訳の途中です。オリジナルは 15:55, 8 July 2014 Jdgrimes #144732 です。このページのノートをご覧ください。

このページはラフドラフトで、まだ内容の検証が済んでいません。情報が間違っていたり書き直されることがあります。
執筆中のため、執筆者の許可なく編集しないでください

この関数はタクソノミーを (カスタム分類として) 追加したり、上書きしたりします。 タクソノミーの名前、対象とするオブジェクトの名前、それから引数の配列をパラメータとします。 何も値を返しません。

タクソノミーの名前は注意深く選んで、他のタクソノミーや投稿、それから WordPress の public/private クエリ変数 と衝突しないようにします。 このページにある予約語セクションでチェックしてください。 特に大文字は禁止です(バージョン 3.0 では許されていましたが、バージョン 3.1 からは "Cheatin'" エラーが出ます)。

使い方

<?php register_taxonomy( $taxonomy, $object_type, $args ); ?>

この関数は init アクションを使って呼び出してください。 アクションの外から呼び出すとトラブルの元になります。 詳しくは チケット #15568 を参照してください。

カスタム投稿タイプにカスタムタクソノミー(カスタム分類)を登録するときは安全第一を心がけてください。 この関数でタクソノミーとオブジェクトを繋いだ後、すぐに register_taxonomy_for_object_type() を呼び出してください。 これを怠ると、parse_requestpre_get_posts の中でフィルター呼び出しが行われるときに投稿タイプが不明になってしまい、どんな結果になるかわかりません。

パラメータ

$taxonomy
文字列) (必須) タクソノミーの名前。英小文字とアンダースコアのみ、32文字以下(データベース構造による制限)。
初期値: なし
$object_type
配列/文字列) (必須) タクソノミーオブジェクトのオブジェクト名。オブジェクトタイプは WordPress 標準の投稿タイプ、または登録されているカスタム投稿タイプ
初期値: なし
標準の投稿タイプ:
  • post
  • page
  • attachment
  • revision
  • nav_menu_item
カスタム投稿タイプ:
  • {custom_post_type} - カスタム投稿タイプの名前は英小文字とし、空白は禁止です。
  • null - 明示的に null をセットすると、タクソノミーは登録されますがどのオブジェクトにも関連付けられないため、管理画面から直接使うことはできません。その場合、カスタム投稿タイプを登録するときに 'taxonomy' パラメータを使うか( $args に入れて渡す。register_post_type() を参照)、それとも register_taxonomy_for_object_type() を使って改めて登録する必要があります。
$args
配列/文字列) (オプション引数の配列
初期値: なし

引数

label
文字列) (オプション) タクソノミーの複数形の名前。翻訳の対象。
初期値: $labels->name で上書きされる。
labels
配列) (オプション) タクソノミーに付けるラベルの配列。デフォルトでは、階層のないタクソノミーにはタグのラベルが、階層化したタクソノミーにはカテゴリーのラベルが使われます。
初期値: 空(指定しない)の場合、label の値が name に入り、name の値が singular_name に入る。
  • 'name' - タクソノミーの一般的な名前(普通は複数形)。 $tax->label によって上書きされて同じになる。デフォルトは _x( 'Post Tags', 'taxonomy general name' ) または _x( 'Categories', 'taxonomy general name' ) 。この文字列を国際化するときは、gettext context を使用してカスタム投稿タイプに合わせてください。例: _x('Writers', 'taxonomy general name');
  • 'singular_name' - タクソノミーのオブジェクト 1 個の名前(単数形)。デフォルトは _x( 'Post Tag', 'taxonomy singular name' ) または _x( 'Category', 'taxonomy singular name' ) 。この文字列を国際化するときは、gettext context を使用してカスタム投稿タイプに合わせてください。例: _x('Writer', 'taxonomy singular name');
  • 'menu_name' - メニュー名の文字列。メニュー項目の名前になります。無指定の場合、デフォルトで name のラベルが入ります。
  • 'all_items' - 「すべての項目」の文字列。デフォルトは __( 'All Tags' ) または __( 'All Categories' )
  • 'edit_item' - 「項目を編集」の文字列。デフォルトは __( 'Edit Tag' ) または __( 'Edit Category' )
  • 'view_item' - 「項目を表示」の文字列。デフォルトは __( 'View Tag' ) または __( 'View Category' )
  • 'update_item' - 「項目を更新」の文字列。デフォルトは __( 'Update Tag' ) または __( 'Update Category' )
  • 'add_new_item' - 「新しい項目を追加」の文字列。デフォルトは __( 'Add New Tag' ) または __( 'Add New Category' )
  • 'new_item_name' - 「新しい項目の名前」の文字列。デフォルトは __( 'New Tag Name' ) または __( 'New Category Name' )
  • 'parent_item' - 「親の項目」の文字列。これは投稿のタグのような階層化しないタクソノミーには使われません。デフォルトは null または __( 'Parent Category' )
  • 'parent_item_colon' - parent_item と同じ文字列の後ろにコロン : を付けたもの。デフォルトは null または __( 'Parent Category:' )
  • 'search_items' - 「項目を検索」の文字列。デフォルトは __( 'Search Tags' ) または __( 'Search Categories' )
  • 'popular_items' - 「人気の項目」の文字列。階層のあるタクソノミーには使われません。デフォルトは __( 'Popular Tags' ) または null
  • 'separate_items_with_commas' - タクソノミーのメタボックスで使われる「項目をコンマで区切ってください」の文字列。階層のあるタクソノミーには使われません。デフォルトは __( 'Separate tags with commas' ) または null
  • 'add_or_remove_items' - JavaScript が無効なときにメタボックスで使われる「項目の追加または削除」の文字列。階層のあるタクソノミーには使われません。デフォルトは __( 'Add or remove tags' ) または null
  • 'choose_from_most_used' - タクソノミーのメタボックスで使われる「よく使われている項目から選択」の文字列。階層のあるタクソノミーには使われません。デフォルトは __( 'Choose from the most used tags' ) または null
  • 'not_found' (バージョン 3.6 以降) - 項目が一つもないときにタクソノミーのメタボックスで「よく使われている項目から選択」をクリックすると表示される文字列。階層のあるタクソノミーには使われません。デフォルトは __( 'No tags found.' ) または null
public
真偽値) (オプション) true にすると、タクソノミーは(パブリックに)検索可能になります。
初期値: true
show_ui
真偽値) (オプション) true にすると、タクソノミーを管理するためにデフォルトの UI を用意します。
初期値: 無指定の場合、デフォルトで public 引数の値が入ります。バージョン 3.5 以降は、これを false にするとタクソノミーの管理 UI を隠します。
show_in_nav_menus
真偽値) (オプション) true にすると、ナビゲーションメニューでこのタクソノミーを選択できます。
初期値: 無指定の場合、デフォルトで public 引数の値が入ります。
show_tagcloud
真偽値) (オプション) true にすると、タグクラウドのウィジェットがこのタクソノミーを使います。
初期値: 無指定の場合、デフォルトで show_ui 引数の値が入ります。
meta_box_cb
callback) (オプション) メタボックスを表示するためのコールバック関数を指定できます。(バージョン 3.8 以降で利用可能)
初期値: null

参考: デフォルトは、階層のあるタクソノミーならカテゴリー用メタボックス( meta-boxes.php にある post_categories_meta_box() )、階層化しないタクソノミーならタグ用メタボックス( post_tags_meta_box() )になります。false を指定するとメタボックスを表示しません。

show_admin_column
真偽値) (オプション) true にすると、関連付けられた投稿タイプのテーブルにタクソノミーのカラムを自動生成します。(バージョン 3.5 以降で利用可能)
初期値: false
hierarchical
真偽値) (オプション) true ならカテゴリーのような階層あり(子を持つ)タクソノミー、false ならタグのような階層化しないタクソノミー。
初期値: false

参考: 階層のあるタクソノミーの場合、投稿の編集ページにあるタクソノミー管理ボックスに、既存カテゴリーを選択できるチェックボックス付きリストを表示します(デフォルトの投稿カテゴリーのように)。階層化しないタクソノミーの場合、投稿に付けるタクソノミーのタームをタイプ入力するための空のテキストフィールドだけを表示します(デフォルトの投稿タグのように)。

update_count_callback
文字列) (オプション) 関連付けられた $object_type(例えば投稿)の個数が更新された時に呼び出される関数の名前。フックによく似た動作になります。
初期値: ありませんが、下記の「参考」を見てください。

参考: デフォルトは '' です。この場合、wp_update_term_count_now() の中でカウントを実際に更新するとき、次のような動作になります。もしタクソノミーが post タイプだけに付けられているなら(user のような他の WordPress オブジェクトではなく)、組み込みの _update_post_term_count() 関数を使って、タームに関連付けられた公開済み投稿だけをカウントします。そうでなければ _update_generic_term_count() を使って、そのようなチェックを行わずにカウントします。

これは添付の場合に違いがはっきりします。添付は post の一種であるため、デフォルトの _update_post_term_count() が使われます。しかし、他の投稿へ実際に付けられた(画像を投稿へ挿入したような)添付だけがカウントされるため、これはおそらく期待外れでしょう。つまり、メディアライブラリーを使って WordPress へアップロードしてあっても、投稿へ付けていない添付はカウントされません。もし、あなたが添付にタクソノミーを付ける理由が、メディアライブラリーをドキュメント管理ソリューションのように使おうというのなら、投稿に付けられたものだけでなく付けられていないメディア項目もカウントしたいでしょう。その場合、update_count_callback の値に '_update_generic_term_count' を指定すれば、_update_generic_term_count() の使用を強制できます。

query_var
真偽値または文字列) (オプション) false にすると query_var を無効化します。文字列を指定すると、デフォルトの $taxonomy(タクソノミーの「名前」)の代わりに、それがカスタム query_var になります。
初期値: $taxonomy

参考: query_var は、new WP_Query(array('people'=>$person_name)) のような WP_Query による直接クエリと、/?people=$person_name のような URL クエリに使われます。query_var を false にすると何れの方法も使えなくなりますが、それでも WP_Query(array('taxonomy'=>'people', 'term'=>$person_name)) のようにタクソノミーを直接指定したクエリで投稿を取得できます。

rewrite
真偽値/配列) (オプション) Set to false to prevent automatic URL rewriting a.k.a. "pretty permalinks". Pass an $args array to override default URL settings for permalinks as outlined below:
初期値: true
  • 'slug' - Used as pretty permalink text (i.e. /tag/) - defaults to $taxonomy (taxonomy's name slug)
  • 'with_front' - allowing permalinks to be prepended with front base - defaults to true
  • 'hierarchical' - true or false allow hierarchical urls (implemented in Version 3.1) - defaults to false
  • 'ep_mask' - Assign an endpoint mask for this taxonomy - defaults to EP_NONE. For more info see this Make WordPress Plugins summary of endpoints.

Note: You may need to flush the rewrite rules after changing this. You can do it manually by going to the Permalink Settings page and re-saving the rules -- you don't need to change them -- or by calling $wp_rewrite->flush_rules(). You should only flush the rules once after the taxonomy has been created, not every time the plugin/theme loads.

capabilities
配列) (オプション) An array of the capabilities for this taxonomy.
初期値: なし
  • 'manage_terms' - 'manage_categories'
  • 'edit_terms' - 'manage_categories'
  • 'delete_terms' - 'manage_categories'
  • 'assign_terms' - 'edit_posts'
sort
真偽値) (オプション) Whether this taxonomy should remember the order in which terms are added to objects.
初期値: なし
_builtin
真偽値) (not for general use) Whether this taxonomy is a native or "built-in" taxonomy. Note: this Codex entry is for documentation - core developers recommend you don't use this when registering your own taxonomy
初期値: false

An example of registering a two taxonomies, genres and writers, for the post type called "book" (uses Version 3.1 arguments):

Note: You can define custom taxonomies in a themes's functions.php template file:

<?php
// hook into the init action and call create_book_taxonomies when it fires
add_action( 'init', 'create_book_taxonomies', 0 );

// create two taxonomies, genres and writers for the post type "book"
function create_book_taxonomies() {
	// Add new taxonomy, make it hierarchical (like categories)
	$labels = array(
		'name'              => _x( 'Genres', 'taxonomy general name' ),
		'singular_name'     => _x( 'Genre', 'taxonomy singular name' ),
		'search_items'      => __( 'Search Genres' ),
		'all_items'         => __( 'All Genres' ),
		'parent_item'       => __( 'Parent Genre' ),
		'parent_item_colon' => __( 'Parent Genre:' ),
		'edit_item'         => __( 'Edit Genre' ),
		'update_item'       => __( 'Update Genre' ),
		'add_new_item'      => __( 'Add New Genre' ),
		'new_item_name'     => __( 'New Genre Name' ),
		'menu_name'         => __( 'Genre' ),
	);

	$args = array(
		'hierarchical'      => true,
		'labels'            => $labels,
		'show_ui'           => true,
		'show_admin_column' => true,
		'query_var'         => true,
		'rewrite'           => array( 'slug' => 'genre' ),
	);

	register_taxonomy( 'genre', array( 'book' ), $args );

	// Add new taxonomy, NOT hierarchical (like tags)
	$labels = array(
		'name'                       => _x( 'Writers', 'taxonomy general name' ),
		'singular_name'              => _x( 'Writer', 'taxonomy singular name' ),
		'search_items'               => __( 'Search Writers' ),
		'popular_items'              => __( 'Popular Writers' ),
		'all_items'                  => __( 'All Writers' ),
		'parent_item'                => null,
		'parent_item_colon'          => null,
		'edit_item'                  => __( 'Edit Writer' ),
		'update_item'                => __( 'Update Writer' ),
		'add_new_item'               => __( 'Add New Writer' ),
		'new_item_name'              => __( 'New Writer Name' ),
		'separate_items_with_commas' => __( 'Separate writers with commas' ),
		'add_or_remove_items'        => __( 'Add or remove writers' ),
		'choose_from_most_used'      => __( 'Choose from the most used writers' ),
		'not_found'                  => __( 'No writers found.' ),
		'menu_name'                  => __( 'Writers' ),
	);

	$args = array(
		'hierarchical'          => false,
		'labels'                => $labels,
		'show_ui'               => true,
		'show_admin_column'     => true,
		'update_count_callback' => '_update_post_term_count',
		'query_var'             => true,
		'rewrite'               => array( 'slug' => 'writer' ),
	);

	register_taxonomy( 'writer', 'book', $args );
}
?>

基本的な例

<?php
add_action( 'init', 'create_book_tax' );

function create_book_tax() {
	register_taxonomy(
		'genre',
		'book',
		array(
			'label' => __( 'Genre' ),
			'rewrite' => array( 'slug' => 'genre' ),
			'hierarchical' => true,
		)
	);
}
?>

Note: If you want to ensure that your custom taxonomy behaves like a tag, you must add the option 'update_count_callback' => '_update_post_term_count'. Not doing so will result in multiple comma-separated items added at once being saved as a single value, not as separate values. This can cause undue stress when using get_the_term_list and other term display functions.

予約語

Avoiding the following reserved terms is particularly important if you are passing the term through the $_GET or $_POST array. Doing so can cause WordPress to respond with a 404 error without any other hint or explanation.

  • attachment
  • attachment_id
  • author
  • author_name
  • calendar
  • cat
  • category
  • category__and
  • category__in
  • category__not_in
  • category_name
  • comments_per_page
  • comments_popup
  • customize_messenger_channel
  • customized
  • cpage
  • day
  • debug
  • error
  • exact
  • feed
  • hour
  • link_category
  • m
  • minute
  • monthnum
  • more
  • name
  • nav_menu
  • nonce
  • nopaging
  • offset
  • order
  • orderby
  • p
  • page
  • page_id
  • paged
  • pagename
  • pb
  • perm
  • post
  • post__in
  • post__not_in
  • post_format
  • post_mime_type
  • post_status
  • post_tag
  • post_type
  • posts
  • posts_per_archive_page
  • posts_per_page
  • preview
  • robots
  • s
  • search
  • second
  • sentence
  • showposts
  • static
  • subpost
  • subpost_id
  • tag
  • tag__and
  • tag__in
  • tag__not_in
  • tag_id
  • tag_slug__and
  • tag_slug__in
  • taxonomy
  • tb
  • term
  • theme
  • type
  • w
  • withcomments
  • withoutcomments
  • year

変更履歴

  • 3.6.0:
    • Add 'not_found' label.
  • 3.5.0:
    • Setting 'show_ui' to false hides UI for attachment taxonomies.
    • Add 'show_admin_column' to allow automatic creation of taxonomy columns on associated post types.
  • Since: 2.3.0

ソースファイル

register_taxonomy() is located in wp-includes/taxonomy.php.

参考サイト

register_post_type()


関数リファレンステンプレートタグ目次もご覧ください。