正如我在对your answer, 你不应该利用query_posts
Note: 此功能不适用于插件或主题。如后文所述,有更好、性能更好的选项来更改主查询。query\\u posts()是一种过于简单且有问题的方法,通过将页面的主查询替换为新的查询实例来修改它。它效率低下(重新运行SQL查询),并且在某些情况下会彻底失败(尤其是在处理POST分页时)。
当您需要分页查询时,WP_Query
是一种方法,因为它返回了正确计算所需的所有信息,以便分页正常工作。使用WP_Query
结果被缓存,使其速度更快
您必须在这里做两件事:
设置paged
查询参数中的参数
设置$max_pages
中的参数next_posts_link()
你可以试试这样的方法:(注意:这是未经测试的)
function get_related_author_posts() {
global $authordata, $post;
$paged = ( get_query_var(\'paged\') ) ? get_query_var(\'paged\') : 1;
$args = array(
\'author\' => $authordata->ID,
\'post_type\' => \'kenniscentrum\',
\'post__not_in\' => array( $post->ID ),
\'posts_per_page\' => 5,
\'paged\' => $paged
);
$authors_posts = new WP_Query( $args );
$output = \'\';
if( $authors_posts->have_posts() ) {
$output = \'<ul>\';
while( $authors_posts->have_posts() ) {
$authors_posts->the_post();
$output .= \'<li><a href="\' . get_permalink() . \'">\' . get_the_title() . \'</a>\' . get_the_excerpt() . \'</li>\';
}
$output .= \'</ul>\';
$output .= \'<div class="nav-previous"> \'. get_next_posts_link( __( \'<span class="meta-nav">←</span> Older posts\' ), $authors_posts->max_num_pages) .\'</div>\';
$output .= \'<div class="nav-next"> \'. get_previous_posts_link( __( \'Newer posts <span class="meta-nav">→</span>\' ) ) .\'</div>\';
wp_reset_postdata();
}
return $output;
}