#最初に
閲覧ありがとうございます。
webサイトをの投稿ページをカスタム投稿で作成しておりまして、その出力方法について質問させてください。
現状のループ文は以下になります
#現状
PHP
1<h3></h3> 2 <div> 3 <?php 4 $month = date("m"); 5 $day = date("d"); 6 $custom_posts = get_posts(array( 7 'post_type' => 'event', 8 'posts_per_page' => 6, 9 'orderby' => array( 10 'event_month' => 'ASC', 11 'event_day' => 'ASC', 12 ), 13 'meta_query' => array( 14 'relation' => 'AND', 15 array( 16 'event_month' => array( 17 'key' => 'event_month', 18 'type' => 'DECIMAL(2,0)', 19 'compare' => '>=', 20 ), 21 ), 22 array( 23 'event_day' => array( 24 'key' => 'event_day', 25 'type' => 'DECIMAL(2,0)', 26 'compare' => '>=', 27 ), 28 ), 29 array( 30 'event_week' => array( 31 'key' => 'event_week', 32 ), 33 ), 34 array( 35 'relation' => 'AND', 36 array( 37 'key' => 'event_month', 38 'value' => $month, 39 'type' => 'DECIMAL(2,0)', 40 'compare' => '>=' 41 ), 42 array( 43 'key' => 'event_day', 44 'value' => $day, 45 'type' => 'DECIMAL(2,0)', 46 'compare' => '>=' 47 ), 48 ) 49 ), 50 51 'tax_query' => array( 52 array( 53 'taxonomy' => 'event-tag', 54 'field' => 'slug', 55 'terms' => array('accepting'), 56 'operator' => 'IN' 57 ), 58 ) 59 )); 60 global $post; 61 if ($custom_posts) : foreach ($custom_posts as $post) : setup_postdata($post); 62 ?> 63 <div class="block"> 64 <?php 65 $search = array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"); 66 $replace = array("日", "月", "火", "水", "木", "金", "土"); 67 $week = get_post_meta($post->ID, 'event_week', true); 68 $weekJP = str_replace($search, $replace, $week); 69 $weekClass = str_replace($search, $replace, $week); 70 71 if ($week == 'Sun') : 72 $weekClass = 'sun'; 73 elseif ($week == 'Sat') : 74 $weekClass = 'sat'; 75 else : 76 $weekClass = 'others'; 77 endif; 78 ?> 79//ここから日付の取得 80 <span class="month"><?php echo get_post_meta($post->ID, 'event_month', true); ?>/</span> 81 <span class="<?php echo $weekClass ?>"> 82 <span class="day"><?php echo get_post_meta($post->ID, 'event_day', true); ?></span> 83 (<?php echo $weekJP; ?>) 84 </span> 85//ここまで 86 <a href="<?php the_permalink(); ?>"> 87 <?php 88 setup_postdata($post); 89 echo the_post_thumbnail(array(200, 250)); 90 ?> 91 <p class="title"><?php the_title(); ?></p> 92 </a> 93 </div> 94 <?php 95 endforeach; 96 wp_reset_postdata(); 97 endif; 98 ?> 99 </div> 100
出力内容は日付とサムネイル、タイトルのみで、以下のようになっています
HTML5
1<h3></h3> 2<div> 3 <div class="block"> 4 <span class="month">12/23(金)</span>//省略して表記しています 5 <a href="#"><img><p class="title">タイトル</p></a> 6 </div> 7 <div class="block"> 8 <span class="month">12/23(金)</span> 9 <a href="#"><img><p class="title">タイトル</p></a> 10 </div> 11 <div class="block"> 12 <span class="month">12/24(土)</span> 13 <a href="#"><img><p class="title">タイトル</p></a> 14 </div> 15 <div class="block"> 16 <span class="month">12/24(土)</span> 17 <a href="#"><img><p class="title">タイトル</p></a> 18 </div>
#実現したいこと
同じ日付が連続で並ぶのは正直見栄えが良くないので、できれば下記のように
日付ごとにブロック化して出力したいと考えております。
HTML5
1<h3>12/23(金)</h3> 2<div> 3 <div class="block"> 4 <a href="#"><img><p class="title">タイトル</p></a> 5 </div> 6 <div class="block"> 7 <a href="#"><img><p class="title">タイトル</p></a> 8 </div> 9 10<h3>12/24(土)</h3> 11<div class="block"> 12 <a href="#"><img><p class="title">タイトル</p></a> 13 </div> 14<div class="block"> 15 <a href="#"><img><p class="title">タイトル</p></a> 16 </div>
#試したこと
ループを使って出力を制御すれば良いのかな...と思いましたが、あまりうまくいきません。
どなたかご教授いただける方、よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。