我在WordPress中进行了自定义循环,出于某种原因,即使其他帖子内容每次都成功提取,也会随机跳过日期。
任何想法,因为它让我感到困惑!
例如,帖子列表以及缺少日期的时间:
这是代码,包括所有循环:
<?php query_posts('category_name=News&posts_per_page=10'); ?>
<?php while (have_posts()) : the_post(); ?>
<article>
<div>
<p>PUBLISHED: <?php the_date(); ?></p>
<h4><a class="news_title_link" href="<?php the_permalink();?>"><?php the_title();?></a></h4>
<?php the_excerpt(); ?>
<br />
<a href="<?php the_permalink();?>">Read more</a>
</div>
<div>
<?php if ( function_exists( 'get_the_image' ) ) { get_the_image(array('default_size' => 'thumbnail','default_image' => '/wp-content/uploads/2010/06/default-thumb.jpg'));} ?>
</div>
</article>
<?php endwhile; ?>
<?php endif;?>
答案 0 :(得分:6)
一个可能的原因可能是没有日期的连续帖子都是在与他们都紧接着的日期相同的日子发布的。
在您的示例中,第二个和第三个帖子可能具有相同的发布日期,这导致第三个帖子不显示日期。同样,帖子7到10可能共享相同的发布日期,这导致最后三个帖子不显示日期。
据我所知,the_date()
是如何运作的。它在整个循环中只打印一次唯一的日期。
我可以通过以下方式解决这个问题:
the_time()
代替the_date()
并指定完整日期格式或unset($previousday)
致电the_post()
答案 1 :(得分:0)
Wordpress'the_date() document和https://wordpress.stackexchange.com/questions/47190/date-not-appearing-in-custom-query都暗示了这一点。
<?php the_time(get_option('date_format')); ?>
答案 2 :(得分:0)
截至2017年,还有另一个更简单的解决方案。你可以简单地使用:
echo get_the_date();
而不是the_date();
。对我来说,这是完全相同的问题,仅显示日期,如果它们与之前的日期不同。