tax_queryでターム毎に分類してカスタム投稿記事一覧を表示する

2013年6月24日 Wordpress NAndo

カスタム投稿の記事をタクソノミーのターム毎にセクション分けし、一覧表示させます。

タームで分類した記事一覧のイメージ

tax_queryの出力イメージ

とにかくソース

タームを取得してループする

タームの取得にはget_terms()関数を使います。
タームの数だけsectionタグで括られた部分をforeach($taxonomys as $taxonomy):でループします。

ループ内でそのタームに属する記事を取得・表示する

タームに属する記事を取得します。
記事の取得にはget_posts()関数を使います。
取得した記事はforeach($tax_posts as $tax_post):でループします。

tax_queryが便利

get_posts()で記事を呼び出す際に、tax_queryを使うところが今回のポイント。
tax_queryは、記事の取得条件を細かく絞り込むことができる便利なパラメータです。

16~24行目でtax_queryの設定を配列で指定しています。
変数$taxonomy_nameで定義したタクソノミーに関連付けされた記事で絞り込み取得しています。
'terms' => array( $taxonomy->slug )のように配列のarray()で指定するパラメータもあります。

tax_queryのパラメータや詳しい使い方は下記を参考にしてください。

WP Query – WordPress Codex 日本語版
タクソノミーのパラメータ