タクソノミー・ターム・投稿タイプ【WordPress】

Wordpress

たくそのみー?たーむ??分かるようでいざコードを書こうとすると手が止まる、そんな私のためのメモです。

ワードプレスが持つ投稿タイプ・タクソノミー・タームとは

ワードプレスがデフォルトで持ってるもの、自分で追加できるものがあります。

投稿タイプ

投稿タイプ、と書かれていれば、以下のものを指します。

  • 固定ページ
  • 投稿
  • カスタム投稿タイプ

固定ページや投稿は馴染みがあるものなので迷うことはないかと思います。

「カスタム投稿タイプ」はプラグインやfunctions.phpをいじって独自で追加できる投稿の種類です。

タクソノミー

ワードプレスがデフォルトで持つタクソノミーは、「カテゴリー」と「タグ」。

なんだかややこいいですが、タクソノミーという言葉は以下のものを指しています。

  • カテゴリー
  • タグ
  • カスタムタクソノミー(カスタム分類)

「カスタムタクソノミー」はデフォルトではなく独自で新しく追加した分類のことです。

ターム

  • タクソノミーの内容(カテゴリのような分類名の1つ1つ)

タクソノミーに紐づいている更に細かい分類のこと・・・と理解しています。

カテゴリに紐づいた個々の記事のことではなく、タクソノミーのなかのさらなるカテゴリー名、というか・・・

ややこしいですね!

実際の使い方

関数の引数にタクソノミーやターム、投稿タイプなど必要な情報を指定しなければいけません。

実際の例を見てみましょう。

get_terms()において

例えば、任意のカスタム投稿タイプのタームを取得したいとき、get_terms( )を使います。
get_terms( 'event' );
のように、タクソノミーのスラッグ(‘event’)を指定することで、そのタクソノミーに属するタームを取得できます。

自作関数で使う

例えばこんな、任意の記事を取得する自作関数があるとします。

function get_specific_posts( $post_type, $taxonomy = null , $term = null, $number = -1 )
これを実際に使う時の引数はこんな感じ。
get_specific_posts( 'post', 'category', 'news', 3);
$post_type:’post’(投稿タイプ:投稿)
$taxonomy:’category’(タクソノミー:カテゴリー)
$term:’news’(ターム:カテゴリーの中の1つ ‘news’ を指定)
$number:3件取得

ということ。

カテゴリー「news」に属する投稿記事は3件取得できます。

同じ関数の使用例もう1つ。

get_specific_posts('daily', 'event', 'festival', $number = -1);
$post_type:’daily’(投稿タイプ:カスタム投稿タイプの名前)
$taxonomy:’event’(タクソノミー:カスタム投稿タイプに作った分類(タクソノミー)名)
$term:’festival’(上記タクソノミーの中のタームの名前)
$number:全件取得

カスタム投稿タイプ「daily」の中の「event」に紐づくターム、「festival」の記事を全取得。ということになります。

プラグイン、Custom Post Type UIを使ってカスタム投稿タイプを作成している場合、ダッシュボードのプラグイン設定ページ内にある「投稿タイプを表示」タブでスラッグ名を確認できます。

もう1つ同じ関数を使った例

今度はtaxonomy.phpの中で関数を使った場合です。

get_specific_posts( 'daily', 'event', $term, -1 );
$post_type:’daily’(投稿タイプ:カスタム投稿タイプの名前)
$taxonomy:’event’(タクソノミー:カスタム投稿タイプに作った分類(タクソノミー)名)
$term:$term(taxonomy.phpでは変数$termに自動的に閲覧しているタームのスラッグが入る!!
$number:全件取得
ターム一覧から任意のタームをクリックすると、自動でそのタームに紐づいた記事が表示されます。
タイトルとURLをコピーしました