Custom-post-type-archive: posts classificados / filtrados por ano?

Eu tenho um wr_event personalizado-post-type cujas postagens são ordenadas por meta_key “event_date”.

Por isso, tenho essa function útil …

 function get_event_list( $latest = true, $order = 'ASC' ) { echo '
    '; $yesterday = time() - 24*60*60; $compare = $latest ? '>' : ' 'wr_event', 'posts_per_page' => -1, // show all posts 'meta_key' => 'event_date', 'orderby' => 'meta_value_num', 'order' => $order, 'meta_value' => $yesterday, 'meta_compare' => $compare ); $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); get_template_part( 'inc/event', 'item' ); endwhile; wp_reset_postdata(); echo '
'; }

Se eu simplesmente chamar “todos ” próximos events são listados por sua data de evento ascendente .

No meu arquivo de events, no entanto, eu chamo `para que todos os events que já tenham ocorrido sejam classificados por data decrescente .

Minha pergunta: como posso inserir o número do ano entre as postagens no evento-arquivo?

Agora eu tenho isso …

 - event 04-2012 - event 03-2012 - event 02-2012 - event 01-2012 - event 03-2011 - event 02-2011 - event 02-2011 - event 05-2010 - … and so on 

E o que eu quero é isso …

 2012 - event 04-2012 - event 03-2012 - event 02-2012 - event 01-2012 2011 - event 03-2011 - event 02-2011 - event 02-2011 2010 - event 05-2012 - … and so on 

Como eu poderia inserir o número do ano entre todos os events de um ano? Alguma idéia inteligente sobre isso? Eu realmente preciso encontrar alguma maneira de fazer isso?

Solutions Collecting From Web of "Custom-post-type-archive: posts classificados / filtrados por ano?"

crie uma variável para manter o ano de $current_year você está enviando e verifique isso em relação ao ano de cada evento, redefinindo o valor quando você encontrar um evento com um ano diferente:

 $current_year = ''; while ( $loop->have_posts() ) : $loop->the_post(); // this is just a simple example of the logic, // you'll need to extract the year from your date key $this_year = get_post_meta( $post->ID, 'event_date', true ); if( $this_year != $current_year ) : // new year, output the year header // and reset current year to this new value echo '

' . $this_year . '

'; $current_year = $this_year; endif; echo 'event' . $this_year; endwhile;