テーマの自作をする際、トップページで特定の記事をちょろっと表示させたい時などに使います。
タクソノミーを指定して投稿を表示させる
以下のサブループでは、投稿タイプ「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」に指定されている投稿だけを表示させるというような事も可能です。
ちなみに筆者は関東の人です。