在归档页面上,我让WordPress处理归档页面并加载前10篇文章,然后用AJAX请求加载更多的文章,这个AJAX请求返回了奇怪的结果。
我在AJAX处理程序中的查询如下所示:
$query_args = array(
\'post_type\' => \'post\',
\'posts_per_page\' => get_option( \'posts_per_page\' ), // 10 by default
\'offset\' => get_option( \'posts_per_page\' ), // 10 by default
\'cat\' => 8 // the category ID
);
$wp_query_archive = new WP_Query( $query_args );
The problem: 如果AJAX查询的帖子数小于10,则会得到一篇重复的帖子。
如果帖子已编号,则第一个查询(返回所选类别中前10篇帖子的默认存档查询)将返回:1,2,3,4,5,6,7,8,9,10
, 由AJAX请求进行的第二个查询(如上所述)返回:10,11
. 这将导致前端的后期复制。
但是,如果AJAX查询有10个或更多帖子,查询将返回:11,12,13,14,15,16,17,18,19,20
如果AJAX查询仅返回一篇文章,则查询仅返回该篇文章:11
, 没错,但当有两篇文章要返回时,查询将返回:10,11,12
.
当AJAX查询有5篇帖子时,查询也会返回正确的帖子,这意味着:11,12,13,14,15
有什么魔法可以WP_Query()
这就是为什么它会这样?
Addition: 我不能使用paged
正如JacobPeattie指出的,查询参数是因为当用户点击页面时,我使用该查询从多个“页面”加载帖子hash 例如,包含字符串“#page3”。