下面的循环对于我使用时间(…)获取具有给定日期的帖子非常有用:
<?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();
?>
但前10篇帖子总是显示相同的日期(即2017年7月21日)。我只想为这10篇文章显示一次该日期。如果我明天创建一个新帖子,那么它应该在这10篇帖子下面显示一个新的日期,然后再显示与该新日期关联的帖子。如果没有硬编码日期,我如何才能将循环转换为那样思考?
谢谢
SO网友:dbeja
您可以将最后日期保存在变量上,并在每次迭代中比较当前日期和最后日期,如果它们不同,只需写入日期即可:
<?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();
?>