WordPressのタクソノミーとタームについて
WordPressでサイトを構築する過程で使用される「タクソノミー」と「ターム」について、概要と表示方法をまとめました。
タクソノミーとは
WordPressの投稿には、記事ページを分類するための「カテゴリー」や「タグ」が標準で用意されています。
この「カテゴリー」や「タグ」のように、投稿を分類するため設定の総称が「タクソノミー」です。
オリジナルの名称で作成された独自の分類は、「カスタムタクソノミー(カスタム分類)」と呼ばれます。
タームとは
タクソノミーの中で設定する個々の項目が「ターム」です。
例えば、「都道府県」カテゴリーに設定されている項目「北海道」「青森県」それぞれがタームにあたります。
「カテゴリー」のタームは、親子関係の階層を作ることができます。カスタムタクソノミーでも、階層のタームを作ることができます。
タクソノミーに登録されたタームを表示する
投稿にデフォルトで用意されているカテゴリーやタグのタームを一覧で表示する場合は、the_category()
、the_tags()
のような専用の関数を使用します。
カスタムタクソノミーのように、デフォルトの投稿にはない独自のタクソノミーに登録されているタームを表示したい場合は、get_terms()
関数を利用します。
<?php
$terms = get_terms('area');
foreach ($terms as $term){
echo '<a href="'.get_term_link($term->slug, 'area').'">'.$term->name.'</a>';
}
?>
上記は、スラッグが「area」のタクソノミーに含まれるタームをリンク付きの一覧で表示するコードです。リンクは、クリックするとアーカイブのページに遷移します。
get_terms()
で指定したタクソノミーに含まれるタームをすべて取得して、foreach
のループで表示しています。get_terms()
には、タクソノミーのスラッグを設定します。
表示するリンクには、$term->name
でターム名を、get_term_link()
でリンク先のURLを設定しています。
他にも、以下のプロパティ名を指定することで、タームの様々な値を取得することができます。
- タームID:$term->term_id
- ターム名:$term->name
- タームスラッグ:$term->slug
- グループID:$term->term_group
- タクソノミーID:$term->term_taxonomy_id
- タクソノミー名:$term->taxonomy
- タームの説明:$term->description
- タームの親ID:$term->parent
- タームの投稿数:$term->count
スラッグに「category」、「post_tag」を指定すれば、カテゴリーやタグの表示することもできます。
投稿に属するタームを表示する
投稿のページで、設定されているタームを表示するためには、get_the_terms()
関数を使用します。
<?php
$terms = get_the_terms($post->ID, 'area');
foreach($terms as $term) {
echo '<li><a href="'.get_term_link($term->slug,'area').'">'.$term->name.'</a></li>';
}
?>
single.phpに上記のコードを記入することで、投稿記事のスラッグが「area」のタクソノミーに含まれるタームをリンク付きの一覧で表示ことができます。
取得した値の表示に使用できるプロパティは、上記のget_terms()
と同様です。