カスタム投稿を使用してランキングを作成しており、カテゴリーごとにタブ切り替えをしたいです。
タブメニュー、タブコンテンツの外枠はタームごとに出しわけができたのですが、投稿内容がタームごとに出力できません。
また、投稿内容(ランキングデータ)は「Advanced Custom Fields」の「関連」を使用して出力する予定です。
コード自体はindex.phpを想定しており、
今年の当月のランキングのみを出力させる予定です。
カスタム投稿タイプ:ranking
カスタムタクソノミー:ranking_cat
php
1<?php 2 $this_date = date('Y-m-1'); // 今日の日付を元に今月の月初めを取得 3 $this_year = date('Y', strtotime($this_date)); // 年を取得 4 $this_month = date('m', strtotime($this_date)); // 月を取得 5 $terms = get_terms('ranking_cat'); 6 $args = array( 7 'year' => $this_year, 8 'monthnum' => $this_month, 9 'post_type' => 'ranking', 10 'posts_per_page' => 1, // ループ表示させる数を指定 11 ); 12 $the_query = new WP_Query($args); 13?> 14 15 <!-- タブメニュー --> 16 <ul class="nav nav-tabs mt-5"> 17 <?php foreach ( $terms as $term ) { 18 if ($term === reset($terms)) {// 1番目は初めから表示 19 echo '<li class="nav-item"><a class="nav-link active" href="#tab-'.$term->term_id.'" data-toggle="tab">'.$term->name.'</a></li>'; 20 } else { 21 echo '<li class="nav-item"><a class="nav-link" href="#tab-'.$term->term_id.'" data-toggle="tab">'.$term->name.'</a></li>'; 22 } 23 } ?> 24 </ul> 25 26 <!-- タブコンテンツ --> 27 <?php if ( $the_query->have_posts() ) : ?> 28 <div class="tab-content"> 29 <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?> 30 <?php 31 $posts = get_field('ranking-posts'); // ランキングデータを取得 32 ?> 33 <?php foreach ( $terms as $term ): ?> 34 <?php if ($term === reset($terms)) { ?> 35 <!-- タブリスト --> 36 <?php echo '<div class="tab-pane active" id="tab-'.$term->term_id.'">'; // 1番目は初めから表示 ?> 37 38 <!-- 39 ここにタームごとのランキングデータを出力したい。 40 下記は出力予定です。 41 --> 42 43 <?php 44 /*foreach ( $posts as $val ) { 45 $link = get_permalink( $val->ID ); 46 $title = get_the_title( $val->ID ); 47 $img = get_the_post_thumbnail( $val->ID , 'medium' ); 48 $name = the_field('profile-name-en', $val->ID); 49 $category = the_terms( $val->ID, 'shop_cat' ); 50 }*/ 51 ?> 52 53 <?php echo '</div>'; ?> 54 55 <?php } else { ?> 56 <?php echo '<div class="tab-pane" id="tab-'.$term->term_id.'">'; ?> 57 58 <!-- 59 ここにタームごとのランキングデータを出力したい。 60 下記は出力予定です。 61 --> 62 63 <?php 64 /*foreach ( $posts as $val ) { 65 $link = get_permalink( $val->ID ); 66 $title = get_the_title( $val->ID ); 67 $img = get_the_post_thumbnail( $val->ID , 'medium' ); 68 $name = the_field('profile-name-en', $val->ID); 69 $category = the_terms( $val->ID, 'shop_cat' ); 70 }*/ 71 ?> 72 73 <?php echo '</div>'; ?> 74 <?php } ?> 75 <?php endforeach; ?> 76 <?php endwhile; ?> 77</div> 78 79 80<?php wp_reset_postdata(); ?>
以上になります。
皆様のお力添えお願い致しますm(__)m
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。