舞台公演の情報サイトをWordPressで構築しております。
「公演情報」をいくつかのカスタムフィールドの項目で入力し、
それらを固定ページで一覧表示するということをしようとしています。
情報の登録項目に、「公演日程」という項目があり、
カレンダーピッカーから入力する項目として設けました。
現在、固定ページのテンプレートphpにて、
↓のソースで、情報を一覧で表示するところまではできるようになりました。
この状態から、
(1)表示される内容は【現在の月】と、【現在の月の翌月】だけを降順(または昇順)で表示したい。
→古い情報や遠い未来の情報は表示せず、当月と直近の未来の情報だけを表示するようにしたいと思っています。
(2)表示される順序は投稿日時ではなく【公演日程(開始日)】のフィールド('schedule_start')の日付の順序にしたい。
→多数のユーザーがランダムに公演情報を入力する運用を想定しているため、投稿日時の順ではなく、公演日程でソートしたいと思っています。
上記の2要件を実現したいと思っているのですが、これ以降の処理がわからず悩んています。
どのようなコードとするとよいでしょうか?
詳しい方にアドバイスをいただけますと大変ありがたいです。
<?php $posts = get_posts('numberposts=100&category=557'); global $post; ?> <?php if($posts): foreach($posts as $post): setup_postdata($post); ?> <div style="padding:15px 0;border-bottom:1px dotted #dddddd;"> <strong> <?php the_field('team_name'); ?>『<?php the_field('title'); ?>』 </strong> <br> <span style="font-size:80%;"> 【公演日程】<strong> <?php $week = array("日", "月", "火", "水", "木", "金", "土"); ?> <?php $date = date_create(''.get_field('schedule_start').''); echo date_format($date,'Y年m月d日') . "(" . $week[(int)date_format($date,'w')] . ")" ; ?> 〜 <?php $date = date_create(''.get_field('schedule_end').''); echo date_format($date,'Y年m月d日') . "(" . $week[(int)date_format($date,'w')] . ")" ; ?> </strong> <?php the_field('stages'); ?></span><br> <span style="font-size:80%;"><?php the_field('profile'); ?></span><br> <span style="font-size:80%;">【会場】<?php the_field('location'); ?></span><br> <!--URlがあれば表示、の分岐 ここから--> <?php $imgid = get_field('url'); ?> <?php if(empty($imgid)):?> <?php else:?> <span style="font-size:80%;">【公演情報】<a href="<?php get_field('url')?>" target="_blank"><?php the_field('url'); ?></a></span><br> <?php endif;?> <!--URlがあれば表示、の分岐 ここまで--> <!--見る見た表示 ここから--> <?php $cfcb = get_field_object('mirumita'); $cfcbId = get_post_meta($post->ID,'mirumita'); $cfcbId = $cfcbId[0]; if($cfcb) { foreach($cfcbId as $v) { echo '<span style="font-size:60%;" class="ico-'. $v. '">' . $cfcb['choices'][$v] .'</span>'; } } ?> <!--見る見た表示 ここまで--> </div><!--data_box--> <?php endforeach; endif;?> <!--公演情報呼び出しここまで-->
回答1件
あなたの回答
tips
プレビュー