タームの階層のループ
-
まず、条件として5位までランキングを出したいです。
下記のソースでカスタム投稿の
記事詳細と同じタームのランキングは表示されます。
しかし、この場合ですとタームに3つしか記事がなかった場合、
3位までしかでません、
なので、その場合は一つ上のタームから拾って、
5位まで表示されるまで階層を登って行きたいです。foreachの入れ子とif文で行けそうなきがしますが、
構文の書き方がわかりません。よろしくお願いします。
<ul class="list-ranking"> <?php global $post; $ids = wp_get_object_terms( $post->ID, 'column_category', array( 'fields' => 'ids' ) ); $args = array( 'posts_per_page' => 5, 'post_type' => 'column', 'meta_key' => 'views', 'orderby' => 'meta_value_num', 'tax_query' => array( array( 'taxonomy' => 'column_category', 'terms' => $ids, 'include_children' => false, // ← 追加 'operator' => 'AND', // 'IN', 'NOT IN', 'AND' 等 )), ); $posts = get_posts($args); ?> <li class="media kanshu"> <!-- ランキング順位 --> <div class="rank"><?php echo $i;?></div> <!-- サムネイル --> <div class="media-left"> <a href="<?php the_permalink($posts->ID) ?>"><?php the_post_thumbnail($posts->ID,'thumb'); ?></a> </div> <!-- 記事 --> <div class="media-body"> <a href="<?php the_permalink($posts->ID) ?>"> <?php echo $post-> post_title;//mb_substr(strip_tags($post-> post_title),0,40).'...'; ?> </a> </div> </li> <?php endforeach; wp_reset_query();?> </ul>
2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「タームの階層のループ」には新たに返信することはできません。