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()と同様です。

Share on Twitter
関連記事
WordPressの投稿一覧をAjaxで無限スクロール表示する方法
WordPressの投稿一覧をAjaxで無限スクロール表示する方法
Smart Custom Fieldsでカスタムフィールドを作る方法
Smart Custom Fieldsでカスタムフィールドを作る方法
WordPressでタームごと記事一覧を表示する方法
WordPressでタームごと記事一覧を表示する方法