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

「カスタム分類」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(最新版に更新、和訳完了。)
(「例」に capabilities の説明を本家から追記。404エラーを本家から追記。)
2行目: 2行目:
 
== 分類とは ? ==
 
== 分類とは ? ==
 
</div>
 
</div>
「カスタム分類」の英語表記は、「カスタムタクソノミー (Custom Taxonomies)」となっています。タクソノミーとは物事をグループ化する方法、つまり平たく言うと分類ということです。
+
「カスタム分類」の英語表記は、「カスタムタクソノミー (Custom Taxonomies)」となっています。
 +
聞き慣れない言葉だと思いますが、タクソノミーとは物事をグループ化する方法、つまり平たく言うと分類ということです。
  
例えば、いろいろな種類の動物を特徴ごとに分類して各グループに名前をつけるとします。多くの人が生物のクラスでやるようなことですが、[http://ja.wikipedia.org/wiki/生物の分類#.E3.83.AA.E3.83.B3.E3.83.8D.E3.81.AE.E5.88.86.E9.A1.9E リンネの分類] ([http://en.wikipedia.org/wiki/Linnaean_taxonomy Linnaean Taxonomy]) と呼ばれています。
+
例えば、いろいろな種類の動物を、特徴ごとに分類して各グループに名前をつけるようなものです。
 +
これは多くの人が生物のクラスで経験するようなことで、[http://ja.wikipedia.org/wiki/生物の分類#.E3.83.AA.E3.83.B3.E3.83.8D.E3.81.AE.E5.88.86.E9.A1.9E リンネの分類] ([http://en.wikipedia.org/wiki/Linnaean_taxonomy Linnaean Taxonomy]) と呼ばれています。
  
WordPress では、「分類」は投稿(またはリンク、カスタム投稿タイプ)をグループ化するための仕組みのことです。
+
WordPress では、「分類(タクソノミー)」は投稿(またはリンク、カスタム投稿タイプ)をグループ化するための仕組みのことです。
  
分類内のさまざまなグループ名は「terms(項目)」 と呼びます。動物のグループ化を例に取ると、あるグループを「鳥」、別のグループを「魚」と名づけるとします。「鳥」や「魚」は、分類内の項目です。WordPress の例で言うと、あるカテゴリーやタグ(次の項目を参照)が項目となります。
+
分類内のさまざまなグループ名を「terms(項目)」 と呼びます。
 +
動物のグループ化を例に取ると、あるグループを「鳥」、別のグループを「魚」と名づけるでしょう。
 +
「鳥」や「魚」は、分類内の項目です。
 +
WordPress の例で言うと、あるカテゴリーやタグ(次の項目を参照)が項目となります。
  
 
<div id="Default_Taxonomies">
 
<div id="Default_Taxonomies">
14行目: 19行目:
 
</div>
 
</div>
  
WordPress には3種類の分類が組み込まれています。おそらくすでに使ったことがあるはずです。
+
WordPress には 3 種類の分類が組み込まれています。おそらくすでに使ったことがあるはずです。
  
 
<div id="Cagegory">
 
<div id="Cagegory">
25行目: 30行目:
 
</div>
 
</div>
  
<code>post_tag</code> 分類はカテゴリーに似ていますが、より自由な形態です。タグは投稿ごとにその場その場で入力して作成でき、<code>/tag/name</code> と言った形式の URL で表示できます。投稿には複数のタグがつけられることが多く、通常、投稿内容の近くまたはタグクラウドとして表示されます。
+
<code>post_tag</code> 分類はカテゴリーに似ていますが、より自由な形態です。
 +
タグは投稿ごとにその場その場で入力して作成でき、<code>/tag/name</code> と言った形式の URL で表示できます。
 +
投稿には複数のタグがつけられることが多く、通常、投稿内容の近くまたはタグクラウドとして表示されます。
  
 
<div id="Link_Cagegory">
 
<div id="Link_Cagegory">
31行目: 38行目:
 
</div>
 
</div>
  
<code>link_category</code> 分類はリンクに対して使われます。構成上の理由で内部に限って使われることが多く、通常サイトに直接表示されることはありません。サイドバーなどに表示するためのリンクをグループ化するのに便利です。e.
+
<code>link_category</code> 分類はリンクに対して使われます。
 +
構成上の理由で内部に限って使われることが多く、通常サイトに直接表示されることはありません。
 +
サイドバーなどに表示するためのリンクをグループ化するのに便利です。
  
 
<div id="Custom_Taxonomies">
 
<div id="Custom_Taxonomies">
37行目: 46行目:
 
</div>
 
</div>
  
[[Version 2.3|WordPress 2.3]] 以降でカスタム分類が作成できるようになりましたが、[[Version 2.9|バージョン 2.9]] まではほとんど活用されていませんでした。しかし実際は、色々な項目を色々な方法でグループ化するために非常にパワフルな機能なのです。
+
[[Version 2.3|WordPress 2.3]] 以降でカスタム分類が作成できるようになりましたが、[[Version 2.9|バージョン 2.9]] まではほとんど活用されていませんでした。
 +
しかし実際は、色々な項目を色々な方法でグループ化するために非常にパワフルな機能なのです。
  
 
<div id="Example">
 
<div id="Example">
43行目: 53行目:
 
</div>
 
</div>
  
例えば、[http://wordpress.org/extend/plugins/matts-community-tags/ Matt's Community Tags] (Matt のコミュニティタグ) プラグインは、添付ファイルで "people" という分類を定義するために使われます。写真の中に写っている人をタグ付けし、<code>person/name</code> という URL でそれぞれの人の写真を表示します。
+
例えば、[http://wordpress.org/extend/plugins/matts-community-tags/ Matt's Community Tags] (Matt のコミュニティタグ)プラグインは、添付ファイルに対して "people" という分類を定義するために使われます。
 +
写真の中に写っている人をタグ付けし、<code>person/name</code> という URL でそれぞれの人の写真を表示できます。
  
 
<div id="Registering_a_taxonomy">
 
<div id="Registering_a_taxonomy">
71行目: 82行目:
 
add_action( 'init', 'people_init' );
 
add_action( 'init', 'people_init' );
 
</pre>
 
</pre>
ここで "people" 分類が定義されています。投稿内で使い、スラッグを <code>people</code> ではなく <code>person</code> とリライトできるようになっています。
+
ここで "people" 分類が定義されています。
 +
投稿内で使い、スラッグを <code>people</code> ではなく <code>person</code> とリライトできるようになっています。
 +
 
 +
capabilities の行はオプションです。
 +
指定しなければデフォルトとして、WordPress は投稿と同じユーザーの権限を適用します。
 +
上記の例では、カスタムの "edit_guides" 権限を持つユーザーがこの分類を投稿へ付けることができます。
 +
また "publish_guides" 権限を持つユーザーは、分類に新しい項目を加えることができます。
  
 
<div id="Using_that_taxonomy">
 
<div id="Using_that_taxonomy">
77行目: 94行目:
 
</div>
 
</div>
  
分類を追加すると、投稿編集ページに新しいメタ情報ボックスが追加されます。このボックスはタグ用のボックスとほとんど同じで、カスタム分類用のキーワードを追加できます。
+
分類を追加すると、投稿編集ページに新しいメタ情報ボックスが追加されます。
 +
このボックスはタグ用のボックスとほとんど同じで、カスタム分類用のキーワードを追加できます。
  
カスタム分類を投稿に対して使わない場合は管理画面で表示されないかもしれません。分類は一般的なものなので、どんなオブジェクトに対してでも使うことができます。カスタム分類を使ってオブジェクトにキーワードを追加するには、[[関数リファレンス/wp_set_object_terms|wp_set_object_terms()]]/[[:en:Function_Reference/wp_set_object_terms|en]] 関数を使います。以下は、"person" 分類のキーワード "Bob" を ID 123 の投稿に追加する例です。
+
カスタム分類を投稿に対して使わない場合は管理画面で表示されないかもしれません。
 +
分類は一般的なものなので、どんなオブジェクトに対してでも使うことができます。
 +
カスタム分類を使ってオブジェクトにキーワードを追加するには、[[関数リファレンス/wp_set_object_terms|wp_set_object_terms()]] 関数を使います。
 +
以下は、"person" 分類のキーワード "Bob" を ID 123 の投稿に追加する例です。
  
 
  wp_set_object_terms( 123, 'Bob', 'person' );
 
  wp_set_object_terms( 123, 'Bob', 'person' );
  
ご覧の通り、とてもシンプルです。2つ目のパラメータは複数キーワードの配列にすることもできます。
+
ご覧の通り、とてもシンプルです。
 +
2 番目のパラメータを複数キーワードの配列にして、まとめて追加することもできます。
  
 
<div id="Clouds">
 
<div id="Clouds">
89行目: 111行目:
 
</div>
 
</div>
  
カスタム分類の項目をタグクラウド形式で表示させたい場合は、[[テンプレートタグ/wp_tag_cloud|wp_tag_cloud()]] 関数でも "taxonomy" パラメータを受け取ることができます。
+
カスタム分類の項目をタグクラウド形式で表示させたい場合は、[[テンプレートタグ/wp_tag_cloud|wp_tag_cloud()]] 関数に "taxonomy" パラメータを指定することができます。
  
 
<div id="Listing_the_terms">
 
<div id="Listing_the_terms">
105行目: 127行目:
 
</div>
 
</div>
  
タクソノミーを作成すると、通常は特別なクエリ変数が [[Class Reference/WP_Query|WP_Query]] クラスを使って自動的に生成されます。これを使って投稿を取り出すことができます。例えば、"person" という分類で "bob" という項目が付いている投稿の一覧を取得するには以下のようにします。
+
タクソノミーを作成すると、通常は特別なクエリ変数が [[Class Reference/WP_Query|WP_Query]] クラスを使って自動的に生成されます。
 +
これを使って投稿を取り出すことができます。
 +
例えば、"person" という分類で "bob" という項目が付いている投稿の一覧を取得するには以下のようにします。
  
 
  $query = new WP_Query( array( 'person' => 'bob' ) );
 
  $query = new WP_Query( array( 'person' => 'bob' ) );
  
または、さらに複雑な変数の場合は以下のようにします。
+
または、以下のようにパラメータを細かく指定する形式も使えます。
  
 
<pre>
 
<pre>
123行目: 147行目:
 
$query = new WP_Query( $args );
 
$query = new WP_Query( $args );
 
</pre>
 
</pre>
<div id="More_Information">
+
 
 +
<div id="404_Error">
 +
== 404 エラー ==
 +
</div>
 +
 
 +
カスタムパーマリンクを使っている場合は、分類(タクソノミー)に変更を加えた後に、パーマリンクの内部構造を再構成する必要があります。
 +
これを怠ると「ページが見つかりません」エラーが表示される場合があります。
 +
WordPress ダッシュボードの [[管理画面#Settings|設定]] > [[管理画面/パーマリンク設定|パーマリンク設定]] を開いて保存の操作を行うと、パーマリンクの内部構造を再構成できます。
 +
<!-- Your permalink structure is automatically flushed when you visit [[Administration_Panels#Settings|Settings]] > [[Settings_Permalinks_Screen|Permalinks]] in your WordPress dashboard. -->
 +
 
 +
<div id="External_Resources">
 
== 追加情報 ==
 
== 追加情報 ==
 
</div>
 
</div>
133行目: 167行目:
  
 
=== 英語情報 ===
 
=== 英語情報 ===
 +
* [http://generatewp.com/taxonomy/ WordPress Taxonomy Generator]
 +
* [https://gist.github.com/1886449 Quick taxonomy creating class]
 
* [http://justintadlock.com/archives/2009/05/06/custom-taxonomies-in-wordpress-28 Custom taxonomies in WordPress 2.8]
 
* [http://justintadlock.com/archives/2009/05/06/custom-taxonomies-in-wordpress-28 Custom taxonomies in WordPress 2.8]
 
* [http://net.tutsplus.com/tutorials/wordpress/introducing-wordpress-3-custom-taxonomies/ Introducing WordPress 3 Custom Taxonomies]
 
* [http://net.tutsplus.com/tutorials/wordpress/introducing-wordpress-3-custom-taxonomies/ Introducing WordPress 3 Custom Taxonomies]
  
 +
<div id="Related">
 +
== 関連項目 ==
 +
</div>
 +
 +
{{Taxonomy Tags}}
 +
 +
{{Tag Footer}}
 +
 +
[[Category:関数]]
 
[[Category:wp3.0]]
 
[[Category:wp3.0]]
 
[[Category:上級トピック]]
 
[[Category:上級トピック]]

2014年7月21日 (月) 09:10時点における版

「カスタム分類」の英語表記は、「カスタムタクソノミー (Custom Taxonomies)」となっています。 聞き慣れない言葉だと思いますが、タクソノミーとは物事をグループ化する方法、つまり平たく言うと分類ということです。

例えば、いろいろな種類の動物を、特徴ごとに分類して各グループに名前をつけるようなものです。 これは多くの人が生物のクラスで経験するようなことで、リンネの分類 (Linnaean Taxonomy) と呼ばれています。

WordPress では、「分類(タクソノミー)」は投稿(またはリンク、カスタム投稿タイプ)をグループ化するための仕組みのことです。

分類内のさまざまなグループ名を「terms(項目)」 と呼びます。 動物のグループ化を例に取ると、あるグループを「鳥」、別のグループを「魚」と名づけるでしょう。 「鳥」や「魚」は、分類内の項目です。 WordPress の例で言うと、あるカテゴリーやタグ(次の項目を参照)が項目となります。

デフォルト分類

WordPress には 3 種類の分類が組み込まれています。おそらくすでに使ったことがあるはずです。

カテゴリー

category 分類を使うと投稿をカテゴリーごとにグループ化し、/category/name と言った形式の URL で表示できます。カテゴリーは事前に定義された広範囲なものであることが多いと言えます。

タグ

post_tag 分類はカテゴリーに似ていますが、より自由な形態です。 タグは投稿ごとにその場その場で入力して作成でき、/tag/name と言った形式の URL で表示できます。 投稿には複数のタグがつけられることが多く、通常、投稿内容の近くまたはタグクラウドとして表示されます。

link_category 分類はリンクに対して使われます。 構成上の理由で内部に限って使われることが多く、通常サイトに直接表示されることはありません。 サイドバーなどに表示するためのリンクをグループ化するのに便利です。

カスタム分類

WordPress 2.3 以降でカスタム分類が作成できるようになりましたが、バージョン 2.9 まではほとんど活用されていませんでした。 しかし実際は、色々な項目を色々な方法でグループ化するために非常にパワフルな機能なのです。

例えば、Matt's Community Tags (Matt のコミュニティタグ)プラグインは、添付ファイルに対して "people" という分類を定義するために使われます。 写真の中に写っている人をタグ付けし、person/name という URL でそれぞれの人の写真を表示できます。

分類の登録

分類を登録するには、register_taxonomy() 関数を使います。

"people" 分類を登録する場合の例は以下のとおりです。

function people_init() {
	// 新規分類を作成
	register_taxonomy(
		'people',
		'post',
		array(
			'label' => __( 'People' ),
			'rewrite' => array( 'slug' => 'person' ),
			'capabilities' => array(
				'assign_terms' => 'edit_guides',
				'edit_terms' => 'publish_guides'
			)
		)
	);
}
add_action( 'init', 'people_init' );

ここで "people" 分類が定義されています。 投稿内で使い、スラッグを people ではなく person とリライトできるようになっています。

capabilities の行はオプションです。 指定しなければデフォルトとして、WordPress は投稿と同じユーザーの権限を適用します。 上記の例では、カスタムの "edit_guides" 権限を持つユーザーがこの分類を投稿へ付けることができます。 また "publish_guides" 権限を持つユーザーは、分類に新しい項目を加えることができます。

登録分類の使用

分類を追加すると、投稿編集ページに新しいメタ情報ボックスが追加されます。 このボックスはタグ用のボックスとほとんど同じで、カスタム分類用のキーワードを追加できます。

カスタム分類を投稿に対して使わない場合は管理画面で表示されないかもしれません。 分類は一般的なものなので、どんなオブジェクトに対してでも使うことができます。 カスタム分類を使ってオブジェクトにキーワードを追加するには、wp_set_object_terms() 関数を使います。 以下は、"person" 分類のキーワード "Bob" を ID 123 の投稿に追加する例です。

wp_set_object_terms( 123, 'Bob', 'person' );

ご覧の通り、とてもシンプルです。 2 番目のパラメータを複数キーワードの配列にして、まとめて追加することもできます。

クラウド

カスタム分類の項目をタグクラウド形式で表示させたい場合は、wp_tag_cloud() 関数に "taxonomy" パラメータを指定することができます。

項目一覧の表示

キーワードのカスタムリストを表示したい場合は、ループ内で分類名を the_terms() 関数に渡します。

the_terms( $post->ID, 'people', 'People: ', ', ', ' ' );

こうすると各投稿に追加された "people" 分類のキーワードが表示されます。

分類によるクエリ

タクソノミーを作成すると、通常は特別なクエリ変数が WP_Query クラスを使って自動的に生成されます。 これを使って投稿を取り出すことができます。 例えば、"person" という分類で "bob" という項目が付いている投稿の一覧を取得するには以下のようにします。

$query = new WP_Query( array( 'person' => 'bob' ) );

または、以下のようにパラメータを細かく指定する形式も使えます。

$args = array(
	'tax_query' => array(
		array(
			'taxonomy' => 'person',
			'field' => 'slug',
			'terms' => 'bob'
		)
	)
);
$query = new WP_Query( $args );

404 エラー

カスタムパーマリンクを使っている場合は、分類(タクソノミー)に変更を加えた後に、パーマリンクの内部構造を再構成する必要があります。 これを怠ると「ページが見つかりません」エラーが表示される場合があります。 WordPress ダッシュボードの 設定 > パーマリンク設定 を開いて保存の操作を行うと、パーマリンクの内部構造を再構成できます。

追加情報

日本語情報

英語情報

カスタム分類: get_taxonomy(), taxonomy_exists(), register_taxonomy(), get_taxonomies(), the_taxonomies(), get_taxonomy_labels(), get_taxonomy_template(), is_object_in_taxonomy(), get_the_taxonomies(), get_post_taxonomies(), get_object_taxonomies(), is_taxonomy_hierarchical()



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

最新英語版: WordPress Codex » Taxonomies最新版との差分