我正在 wordpress 中实现每月存档,因此我使用 date.php 文件来显示每月的帖子。在这个文件中,我有一些分页代码来获取月份和日期,但是我的循环只显示五个帖子并包含许多空帖子,如果我进行分页,比如每页 3 个帖子,总页数仍然是 5,即使分页工作。除此之外,结果还包含许多空帖子(我的意思是它没有字段,但 the_title 返回 1. January 1979)。
我的循环看起来像这样(不要介意外部位 - 它是一个自定义字段,用于确定整个帖子是否存储在外部):
$current_page = max(1, get_query_var('paged'));
$posts = get_posts('cat=19,20&posts_per_page=3&monthnum='.$m.'&year='.$y.'&paged='.$current_page);
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
//
// Post Content here
?>
<?php $externalLink = do_shortcode('[cft key=external before_list="" after_list="" before_value="" after_value=""]'); ?>
<?php if( strlen($externalLink) <= 1): ?>
<div class="title">
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a>
<div class="time small">
<?php if(get_the_time('Y') != '1970') the_time('F jS, Y'); //the_category('','multiple'); ?>
</div>
</div>
<?php else: ?>
<div class="title">
<a href="<?php echo $externalLink ?>" target="_blank" rel="bookmark" title="External Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a>
<div class="time small">
<?php if(get_the_time('Y') != '1970') the_time('F jS, Y'); // the_category('','multiple');?>
</div>
</div>
<?php endif; ?>
<?php
} // end while
} // end if
?>
包括分页逻辑的整个代码可以在这里找到:https ://gist.github.com/uansett/fd1183216ab980e1279a#file-date-php