这个问题与我在这里能够解决的前一个问题相关:https://wordpress.stackexchange.com/a/137929/28389
我正在为\'post__in
\', 我可以运行这个没有问题。
然而,当我使用默认的“每页10篇帖子”循环帖子时,每次加载下一页时,它都会反复加载前10篇帖子。不去11-20、21-30等。
我的数组由100个帖子id组成。
以下是我使用的代码:
$args = array(
\'post_type\' => $post_type,
\'order_by\' => \'post__in\',
\'post__in\' => $post_ids, // This is an array of 100 post id\'s
\'ignore_sticky_posts\' => 1,
);
$wp_query = new WP_Query( $args );
if (have_posts()) :
usort($wp_query->posts, function($a, $b) use ($post_ids) { // Lists loop in order of the array -> http://pastebin.com/3vwiDSfb
return array_search($a->ID, $post_ids) - array_search($b->ID, $post_ids);
});
while(have_posts()) : the_post();
...
endwhile;
endif;
所以当我使用\'
posts_per_page = -1
\', 或者
nopaging = true
\', 阵列中的所有100篇文章都显示良好。但我需要
posts_per_page
选项”,用于延迟加载原因。
更新的工作代码:
$paged = get_query_var( \'paged\' ) ? get_query_var( \'paged\' ) : 1; // setup pagination
$args = array(
\'post_type\' => $post_type,
\'orderby\' => \'post__in\',
\'post__in\' => $post_ids,
\'paged\' => $paged,
\'ignore_sticky_posts\' => 1,
);
$wp_query = new WP_Query( $args );
if (have_posts()) : while(have_posts()) : the_post();
...
endwhile;
endif;