你这样做很难,但效率较低。页面上已经有一个循环。你应该能够单独使用这个和那个。
if (have_posts()) {
while (have_posts()) {
the_post();
if (6 < $wp_query->current_post) {
// formatting for your first six posts
} else {
// formatting for the other posts
}
}
}
就是这样。无需新查询。分页将不需要额外的工作。
注意事项:
“粘性”帖子将包含在您的前六篇帖子中所有帖子的帖子数量都是一样的,所以在第一页上,你会有六篇不同格式的帖子加上posts_per_page
减去6个其他员额。其他页面只有posts_per_page
职位如果你想在第一页(首页)多加六个,你需要在你的主题functions.php
:
function special_offset_pregp_wpse_105496($qry) {
if ($qry->is_main_query()) {
$ppg = get_option(\'posts_per_page\');
$offset = 2;
if (!$qry->is_paged()) {
$qry->set(\'posts_per_page\',$offset);
} else {
$offset = $offset + ( ($qry->query_vars[\'paged\']-1) * $ppg );
$qry->set(\'posts_per_page\',$ppg);
$qry->set(\'offset\',$offset);
add_filter(\'found_posts\', \'special_offset_pregp_fp_wpse_105496\', 1, 2 );
}
}
}
add_action(\'pre_get_posts\',\'special_offset_pregp_wpse_105496\');
function special_offset_pregp_fp_wpse_105496($found_posts) {
return $found_posts - 2;
}