web関連
【wordpress】カスタム投稿の記事とターム情報を一緒に出力するループの書き方
カスタム投稿でタクソノミーを作りタームをいくつか使えるようにしたんだけど普段タクソノミー使わないからどうやって出力すればいいのかわからなかった時の備忘録
やりたいこと
カスタム投稿タイプを件数指定して出力
↓
タクソノミーのターム情報も一緒に出力したい
ソースコード
このコードでやりたかったことができた
<?php
$args = array(
'posts_per_page' => '10',
'post_type' => 'カスタム投稿タイプ名',
);
$the_query = new WP_Query($args);
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();
?>
<?php //タームの情報を取得して出力エリア
$terms = get_the_terms($post->ID,'タクソノミー名');
foreach ( $terms as $term ):?>
<?php
echo $term->name; //名前
echo $term->slug; //スラッグ
echo $term->description; //説明
echo $term->term_id; //タームID
echo $term->parent; //直近の子ターム
echo get_term_link($term->slug, 'タクソノミー名'); //タームのリンク
?>
<?php endforeach; ?>
<?php endwhile; ?>
<?php else: ?>
<?php endif; ?>
「WP_Query」のサブループ内で「get_the_terms()」で取得した情報をもとに「foreach()」で中身を取り出している
WP_Queryだけだとタクソノミーとかタームの絞り込みはパラメータ値で指定すればできるけどターム情報の取得はできないんすね(たぶん)