您的查询有一些问题。我会一边解释
首先,你不应该使用query_posts
构造自定义查询。这不仅是我的重点,也是抄本。最大的问题是query_posts
在许多情况下,分页都会失败
Note: 此功能不适用于插件或主题。如后文所述,有更好、性能更好的选项来更改主查询。query\\u posts()是一种过于简单且有问题的方法,通过将页面的主查询替换为新的查询实例来修改它。它效率低下(重新运行SQL查询),并且在某些情况下会彻底失败(尤其是在处理POST分页时)。
其次,您使用的参数category_name
除了字符串,而不是数组。
第三,您运行了两次query_posts
实际上只需要一个。这也是分页右侧失败的原因
第四,你的next_posts_link
$max_pages
应为自定义查询设置参数,否则将失败
好的,为了完成业务,您需要使用WP_Query
, 记住我上面提到的一些要点。
<?php
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1; // this section is correct, allows pagination
$args = array( //set-up arguments to pass to WP_Query
\'category_name\' => \'string of category slugs, not name\', // can use \'cat\' parameter with string of category ID
\'posts_per_page\' => 5,
\'paged\' = $paged
);
$query = new WP_Query( $args); //add arguments back to WP_Query
if($query->have_posts()) : while($query->have_posts()) : $query->the_post(); //start the loop
<-----YOUR LOOP---->
endwhile;
<----YOUR PAGINATION---->
Remember next_posts_link should look something like \'next_posts_link( \'Older Entries\', $query->max_num_pages );\'
wp_reset_postdata();
endif;