La boucle suivante me convient parfaitement pour obtenir des publications avec une date donnée avec l'utilisation de the_time (...):
<?php
$myPost = new WP_Query( array(
'posts_per_page' => '50',
'orderby' => 'modified',
'order' => 'DESC'
));
while ($myPost->have_posts()): $myPost->the_post();
?>
<div class="timeline-group">
<p class="modified-time"><?php the_time('F j, Y') ?></p>
<h5><a href="<?php the_permalink();?>"><?php the_title();?></a></h5>
</div>
<?php
endwhile;
//Reset Post Data
wp_reset_postdata();
?>
Mais les 10 premiers postes affichent toujours la même date (c'est-à-dire le 21 juillet 2017). Je souhaite afficher cette date une seule fois pour ces 10 messages. Et si je crée un nouveau post demain, il devrait alors afficher une nouvelle date sous ces 10 posts, puis le post associé à cette nouvelle date. Comment puis-je transformer ma boucle pour penser de cette façon sans coder en dur les dates?
Merci
Utilisez simplement the_date()
, il a cela comme une fonctionnalité intégrée.
Voir le dev docs pour plus d’informations.
Vous pouvez enregistrer la dernière date sur une variable et à chaque itération, comparer la date du jour à la dernière date et écrire la date si elle est différente:
<?php
$myPost = new WP_Query( array(
'posts_per_page' => '50',
'orderby' => 'modified',
'order' => 'DESC'
));
$lastDate = '';
while ($myPost->have_posts()): $myPost->the_post();
$currentDate = get_the_time('F j, Y');
?>
<?php if($currentDate != $lastDate): ?>
<h2><?php the_time('F j, Y') ?></h2>
<?php $lastDate = $currentDate; ?>
<?php endif; ?>
<div class="timeline-group">
<h5><a href="<?php the_permalink();?>"><?php the_title();?></a></h5>
</div>
<?php
endwhile;
//Reset Post Data
wp_reset_postdata();
?>