我目前正在本地开发,并试图为我的帖子页面设置分页。目前,我只是试图每页显示一篇文章,但这当然会增加产量。
我的问题是:
$paged = ( get_query_var( \'paged\' ) ) ? absint( get_query_var( \'paged\' ) ) : \'1\';
$posts_list = new WP_Query([
\'posts_per_page\' => 1,
\'offset\' => 0,
\'orderby\' => \'date\',
\'order\' => \'DESC\',
\'post_type\' => \'post\',
\'suppress_filters\' => true,
\'paged\' => $paged
]);
以及分页:
global $wp_query;
$big = 999999999; // need an unlikely integer
$translated = __( \'Page\', \'mytextdomain\' ); // Supply translatable string
echo paginate_links( array(
\'base\' => str_replace( $big, \'%#%\', esc_url( get_pagenum_link( $big ) ) ),
\'format\' => \'?paged=%#%\',
\'current\' => max( 1, get_query_var(\'paged\') ),
\'total\' => $the_query->max_num_pages
) );
分页链接输出良好,但每页上显示的帖子始终是数据库中的第一个帖子。
可能值得注意的是,我也在使用prettylinks,所以分页页面的格式应该是[域]/新闻,[域]/新闻/页面/2,[域]/新闻/页面/3等等。。。
最合适的回答,由SO网友:verism 整理而成
找到了罪犯。我愚蠢地将偏移量硬编码为0,这一定覆盖了WordPress的查询。
我更改了:
$posts_list = new WP_Query([
\'posts_per_page\' => 1,
\'offset\' => 0,
\'orderby\' => \'date\',
\'order\' => \'DESC\',
\'post_type\' => \'post\',
\'suppress_filters\' => true,
\'paged\' => $paged
]);
收件人:
$posts_list = new WP_Query([
\'posts_per_page\' => 1,
\'orderby\' => \'date\',
\'order\' => \'DESC\',
\'post_type\' => \'post\',
\'suppress_filters\' => true,
\'paged\' => $paged
]);
一切都很好。