您的整个模板已损坏,因为您没有修改主查询,而是将其丢弃,并将一个全新的查询放入:
$args = array(
\'posts_per_page\' => 7,
\'paged\' => $paged,
\'cat\' => $postcat // Passes the selected category to the arguments
);
$custom_query = new WP_Query( $args );
WP做了大量的工作,找出了在新查询中必须复制的页面、帖子数量、帖子类型等。同样,这是一个全新的查询,它只执行您让它执行的操作。这对性能/速度也非常不利,会导致页面速度变慢。
相反,如果我们使用pre_get_posts
筛选若要将存档限制为最初计划的7篇文章,可以删除所有分页代码,也可以删除自定义查询:
首先,让我们调整查询以仅显示中的7篇文章functions.php
如果主查询是针对类别存档:
function limit_category( $query ) {
if ( $query->is_category() && $query->is_archive() && $query->is_main_query() ) {
$query->set( \'posts_per_page\', \'7\' );
}
}
add_action( \'pre_get_posts\', \'limit_category\' );
现在,我们可以使用标准分页函数,并在
category.php
, e、 g。
if ( have_posts() ) { // if we have posts
while( have_posts() ) { // while we still have posts
the_post(); // set the current post
the_title(); // display its title
the_content(); // display its content
}
// display the pagination links
?>
<div class="nav-previous alignleft"><?php previous_posts_link( \'Older posts\' ); ?> </div>
<div class="nav-next alignright"><?php next_posts_link( \'Newer posts\' ); ?></div>
<?php
} else {
echo "<p>No posts found</p>";
}