WP Group Beiträge nach Jahr (desc)> Monat (desc)> Datum (asc)

Ich habe eine benutzerdefinierte Kategorievorlage, um Beiträge nach einem benutzerdefinierten Feld ‘event_date’ zu gruppieren. 2 Dinge, die ich nicht richtig herausfinden kann: Gruppierung nach Jahr und Monat und in absteigender Reihenfolge, während die Beiträge selbst in aufsteigender Reihenfolge sind. Derzeit wird für jeden Beitrag ein ‘Event-Jahr’ und ein ‘Event-Monat’ erstellt. Ich gehe davon aus, dass ich für jedes ‘Jahr’ und jeden Monat ein ‘für jede Aussage’ brauche. Aber ich habe einfach nicht die Erfahrung, es richtig zu schreiben.

also das letzte Markup wäre:

Das habe ich jetzt:

  'post', 'post_status' => 'publish', 'meta_key' => 'event_date', 'orderby' => 'meta_value' ) ); $current_header = ''; $current_year = ''; $current_month = ''; $current_day = ''; # The Loop while ( $the_query->have_posts() ) : $the_query->the_post(); # get the event date $temp_date = get_post_meta( get_the_ID(), 'event_date', true ); Break up the date format $dateTime = DateTime::createFromFormat("Ymd", $temp_date); if ( is_object($dateTime) ) { $month = $dateTime->format('F'); $year = $dateTime->format('Y'); $day = $dateTime->format('d'); //... } $display_month = substr($month, 0, 3); if($year != $current_year) { $current_year = $year; echo "
"; } if($month != $current_month) { $current_month = $month; echo "

$year - $month

"; } ?>
post stuff in here...

Solutions Collecting From Web of "WP Group Beiträge nach Jahr (desc)> Monat (desc)> Datum (asc)"

 $last_month = null; $args = array( 'post_type' => 'post', 'orderby' => 'meta_value', 'order' => 'DESC', 'post_status' => 'publish' ); $the_query = new WP_Query($args); while ( $the_query->have_posts() ) : $the_query->the_post(); $the_month = get_the_time( 'Ym' ); // eg 201611 if ( $last_month !== $the_month ) { if ( $last_month !== null ) { // Close previously opened 
echo ''; } echo '
'; echo 'MOnth: '.get_the_time('m'); } $last_month = $the_month; ?>
< ?php the_title(); ?>
< ?php if ( $the_query->current_post + 1 === $the_query->post_count ) { // Last item, always close the div echo '
'; } endwhile;