タクソノミー&カスタムフィールドを指定して投稿を表示させる方法

公開日:2021/1/13

テーマの自作をする際、トップページで特定の記事をちょろっと表示させたい時などに使います。

タクソノミーを指定して投稿を表示させる

以下のサブループでは、投稿タイプ「event」に用意したタクソノミー「area」のスラッグが「osaka」の投稿のみを5件表示します。


$args = array(
  'posts_per_page' => 5,
  'post_type' => 'event'
  'post_status' => 'publish',
  'tax_query' => array(
    array(
      'taxonomy' => 'area', //タクソノミーを指定
      'field' => 'slug', //タームの種類を指定(デフォルトはterm_id)
      'terms' => 'osaka', //タームを指定
    ),
  )
);

$the_query = new WP_Query($args);
if( $the_query->have_posts() ) :
  while ($the_query->have_posts()) : $the_query->the_post();
    // ここでループの処理
  endwhile;
endif;
wp_reset_postdata();

タクソノミーとタームが良く分からなくなってしまうのですが、「カテゴリー」や「タグ」などと同じ「分類名」で、タームとは実際に分類する時に使う名前です。
上記の例だと「area(エリア):タクソノミー」という分類名があって、「osaka(大阪):ターム」という分類で記事をまとめるといった感じです。

カスタムフィールドを指定して投稿を表示させる

Advanced Custom Fieldsなどのカスタムフィールドプラグインを使うと、投稿に独自の属性をいろいろ付けることができるので便利です。
カスタムフィールドの値を指定して投稿を表示させようといった時に使います。

以下のサブループでは、投稿タイプ「event」に用意したカスタムフィールド「place」の値が「osakajo-hall」の投稿のみを5件表示します。


$args = array(
  'posts_per_page' => 5,
  'post_type' => 'event'
  'post_status' => 'publish',
  'meta_query' => array(
    array(
      'key' => 'place', //カスタムフィールドのキーを指定
      'value' => 'osakajo-hall' //カスタムフィールドの値を指定
    ),
  )
);

$the_query = new WP_Query($args);
if( $the_query->have_posts() ) :
  while ($the_query->have_posts()) : $the_query->the_post();
    // ここでループの処理
  endwhile;
endif;
wp_reset_postdata();

カスタムタクソノミーの指定と組み合わせれば、「タクソノミーがosaka」で「カスタムフィールドがlive-event」に指定されている投稿だけを表示させるというような事も可能です。

ちなみに筆者は関東の人です。

参考情報

関数リファレンス/WP Query – WordPress Codex 日本語版

この記事を書いた人

井上 憲作

1975年生まれ。PCパーツの通販サイト管理者から、大手インターネット広告代理店にて、100社以上のコンサルティングやSEO施策に従事したのち、2018年に独立。趣味はスキューバダイビング。

カテゴリー

人気の記事

  1. 株式会社Revery
  2. ブログ
  3. WordPressカスタマイズ
  4. タクソノミー&カスタムフィールドを指定して投稿を表示させる方法