将代码放入模板文件中category.php
.
删除循环之前的所有部分:一旦进入类别模板,就不需要获取类别、页面、再次运行查询query_posts
...
所以你的category.php
应该这样简单地显示:
if ( have_posts() ) : while ( have_posts() ) : the_post();
$image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), \'single-post-thumbnail\' );
?>
... post markup here
<?php endwhile;
else: ?>
<p><?php _e(\'No posts found\'); ?></p>
<?php endif; ?>
<!-- Pagination Part -->
<div id="pagination">
<div class="next"><?php next_posts_link(\'next »\') ?></div>
<div class="prev"><?php previous_posts_link(\'« previous\') ?></div>
</div>
要强制该模板每页仅显示4个FOST,请在
functions.php
使用:
add_action(\'pre_get_posts\',\'four_post_per_cat\');
function four_post_per_cat( $query ) {
if ( ! is_admin() && is_main_query() && is_category() ) {
$query->set(\'posts_per_page\', 4);
}
}
在那之后
numberposts
和
posts_per_page
是同义词,但是
numberposts
已弃用。为它们设置不同的值使
numberposts
什么都不做(或
posts_per_page
什么都不做,我不记得了。。。但是,请使用其中之一)。
如果您的范围限制了达到的帖子总数(在所有页面中),请使用post_limit
过滤器,英寸functions.php
还添加:
add_filter( \'post_limits\', \'cat_post_limits\' );
function cat_post_limits( limit ) {
return ( is_category() ) ? \'LIMIT 0, 50\' : $limit;
}
遵循我的建议,不仅可以解决问题,还可以提高性能:因为
query_posts
性能非常差:永远不要使用它。
<小时>A note: 如果添加了任何重写规则,请确保刷新规则。在仪表板中,转到“设置”->“永久链接”,然后单击“保存更改”。
PS:如果你最多得到50篇帖子,50不能被4整除,所以最后一页将有2篇帖子。。为什么不将限制设置为52或48