我为自定义帖子类型创建了一个新的WP_Query,我正在尝试动态地改变偏移量 . 我的查询是在Making Custom Queries using Offset and Pagination之后建模的,但我更改了它,因此它不会更改主查询 . 无论如何,帖子以正确的顺序显示,当我 echo var_dump ($new_query->get ('offset') );
时,设置了正确的偏移量;但是,当我加载页面时,没有偏移 . 任何人都可以帮我弄清楚为什么没有应用偏移?
function new_query_function ($next_topic) {
$args = array(
'post_type' => 'custom_post_type',
'meta_key' => 'topic',
'orderby' => 'meta_value_num',
'order' => 'DESC',
);
$new_query = new WP_Query ($args);
$offset = ($new_query->found_posts) - $next_topic;
$ppp = (int) get_option ('posts_per_page');
if ($new_query->is_paged) {
$page_offset = $offset + ( ($new_query->query_vars['paged'] - 1) * $ppp );
$new_query->set ('offset', $page_offset);
} else {
$new_query->set ('offset', $offset);
}
$new_query->found_posts = $next_topic;
return $new_query;
}
编辑:我正在实现这个功能也可能是相关的,所以这里是:
$new_query = new_query_function($next_topic);
while ( $new_query->have_posts() ) {
$new_query->the_post();
the_title();
the_content();
//etc.
}
wp_reset_query();
1 回答
找到了答案 . 对于任何好奇的人:
实现是相同的,除了
wp_reset_query()
被wp_reset_postdata()
替换,因为不需要重置整个查询 .我实际上使我的代码更简单而不是最复杂 . 真是一个惊喜 .