サポート » 使い方全般 » タームの階層のループ

  • まず、条件として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件中)
  • トピック「タームの階層のループ」には新たに返信することはできません。