J'ai un type de message personnalisé wr_event
dont les articles sont triés par meta_key
"date_événement".
Par conséquent, j'ai cette fonction pratique…
function get_event_list( $latest = true, $order = 'ASC' ) {
echo '<ul class="event-items">';
$yesterday = time() - 24*60*60;
$compare = $latest ? '>' : '<';
$args = array(
'post_type' => '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 '</ul>';
}
Si j'appelle simplement `all " les événements "à venir" sont listés par ordre croissant date de l'événement.
Cependant, dans mon archive d'événements, j'appelle `donc tous les événements qui ont déjà eu lieu sont triés par ordre décroissant date.
Ma question: Comment puis-je insérer le numéro d'année entre les publications de l'archive des événements?
En ce moment, j'ai ceci…
- 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
Et ce que je veux, c'est ceci…
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
Comment pourrais-je insérer le numéro d'année entre tous les événements d'une année? Des idées intelligentes à ce sujet? J'ai vraiment besoin de trouver un moyen de faire ça?
créez une variable pour contenir le $current_year
que vous exportez et comparez-la à l'année de chaque événement, en réinitialisant la valeur lorsque vous rencontrez un événement avec une année différente:
$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 '<h3>' . $this_year . '</h3>';
$current_year = $this_year;
endif;
echo 'event' . $this_year;
endwhile;