我最初的印象是,我相信现在发生的事情是循环直到the_post
让您的&& $postyear == $i
check实际上是查看以前的帖子,而不是当前的帖子。在循环递增之后,您必须重新组织此项以获得该检查the_post
.
也就是说,我不认为我在更深层次上相信这种逻辑。您正在设置$postyear
在封闭循环之前($postyear = get_the_time(\'Y\', $post->ID);
) 所以它甚至不受the_post
. 这让我担心。
我知道你不想做这么多的修改,但为了它的价值,我想你需要一些更像:
$oldyear = $postyear = get_the_time(\'Y\', $post->ID);?>
<h4><?php echo $postyear; ?></h4>
<ul class="archive-posts"><?php
while (have_posts()) {
the_post();
$postyear = get_the_time(\'Y\', $post->ID);
if ($oldyear != $postyear) {
$oldyear = $postyear; ?>
</ul><h4><?php echo $postyear; ?></h4><ul class="archive-posts">
<?php
} ?>
<li><span class="archive-post-title">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?>
</a></span><span class="archive-post-date"><?php the_time(get_option(\'date_format\')); ?></span></li><?php
}
echo \'</ul>\';
?>
我要走了,我要走了。它几乎没有经过测试,但它应该给你一个想法。