Я создал новый WP_Query для настраиваемого типа сообщения, и я пытаюсь динамически изменять смещение. Мой запрос моделируется после Making Custom Queries using Offset and Pagination, но я изменил его, поэтому он не использует перехватчики, так как я не меняю основной запрос. В любом случае, сообщения отображаются в правильном порядке, а когда я echo var_dump ($new_query->get ('offset'));
, устанавливается правильное смещение; однако при загрузке страницы нет смещения. Может ли кто-нибудь помочь мне выяснить, почему смещение не применяется?Смещение WP_Query не работает
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;
}
Edit: Это также может иметь отношение, как я реализации этой функции, так вот она:
$new_query = new_query_function($next_topic);
while ($new_query->have_posts()) {
$new_query->the_post();
the_title();
the_content();
//etc.
}
wp_reset_query();