I have a custom post type that is simply titles with a date field. I want to display these posts in a list in order of this date field (not date posted). So simply:
—
Sample date
Event title 1
Event title 2
Sample date
Event title 3
Event title 4
Event title 5
(etc)
—
No extra info, that’s literally all I want to display.
I can’t figure out how to go about this at all. I’m not great at PHP so I’d appreciate any help with this.
I solved the same problem like this
First you store each posts in another array called $events_by_date
with date as the index. If another event post falls in the same date you put that post under the same index.
Please comment if you need further explanation.
<?php
//setup your wp_query parmeters to make the query
$calendar_results = new WP_Query( $wp_query_params );
$events_by_date = array();
while ( $calendar_results->have_posts() ) : $calendar_results->the_post();
//$date_group = strtotime($calendar_results->post->post_date);
$date_group = strtotime(date('Y-m-d',$date_group));
$events_by_date[$date_group][] = $calendar_results->post;
endwhile;
global $post;
foreach($events_by_date as $date_heading=>$rows) {
echo '<h2 class="published-date">',
ucfirst( strftime( '%A %d %b',$date_heading ) ) ,
'</h2>';
foreach ($rows as $post ) {
setup_postdata($post) ;
get_template_part( 'content', $template );
}
}
wp_reset_query();