ワードプレスの投稿タイプ『SAMPLE』に、
タクソノミー『AAA』と『BBB』を設定して
『AAA』のタームに紐付いている
『BBB』のターム一覧を考えています
タクソノミー『AAA』 → ターム「A-1」「A-2」「A-3」...
タクソノミー『BBB』 → ターム「B-1」「B-2」「B-3」...
<参考例>
■A-1
ーーーーーーーーー
・ B-1
・ B-2
・ B-3
■A-2
ーーーーーーーーー
・ B-1
・ B-3
※「B-1」「B-2」「B-3」それぞれの投稿が複数あっても、表示されるタームは1つで
クリックすると一覧ページが表示されます
なんとか調べながら、下記のコードまでたどりつきました
<?php $terms = get_terms( 'AAA','orderby=slug&order=DESC' ); foreach ( $terms as $term ) : $args = array( 'post_type' => 'SAMPLE', 'taxonomy' => 'AAA', 'term' => $term->slug, 'posts_per_page' => -1, 'no_found_rows' => true, ); $query = new WP_Query($args); ?> <h2><?php echo esc_html( $term->name ); ?></h2> <ul> <?php if ( $query->have_posts() ) : ?> <?php while ( $query->have_posts() ) : $query->the_post();?> <li> <?php $custom_post_tag = 'BBB'; $custom_post_tag_terms = wp_get_object_terms($post->ID, $custom_post_tag); if(!empty($custom_post_tag_terms)){ foreach($custom_post_tag_terms as $term){ $tag_term_link = get_term_link($term->slug, $custom_post_tag); $tag_term_name = $term->name; ?> <a href="<?php echo $tag_term_link; ?>"><?php echo $tag_term_name; ?></a> <?php } } ?> </li> <?php endwhile;?> <?php wp_reset_postdata(); ?> <?php endif; ?> </ul> <?php endforeach; ?>
ただ、このままですと
全ての投稿が表示され、
同じターム名を1つにまとめる事ができませんでした。
おそらく foreach の部分をなんとかすれば良いのかと思っているのですが
思うようにいかず悩んでいます。
どうか、お知恵をいただけないでしょうか
よろしくお願いいたします
あなたの回答
tips
プレビュー