Дано 9 записей
из них 4 записи - прикрепленные и выводятся отдельным запросом
остальные записи надо вывести как обычно с разбитием на страницы по 6 штук
Цикл выводит 5 постов и появляется ссылка на вторую страницу, которая показывает пустую ленту.
как это пофиксить?
по логике есть еще 1 место для поста, и вообще пагинация не должна учитывать прикрепленные статьи при разбитии на страницы
код цикла такой:
$sticky = get_option( 'sticky_posts' );
$paged = get_query_var( 'paged' ) ?: 1;
$query = new WP_Query( array(
'ignore_sticky_posts' => 1,
'post__not_in' => $sticky,
'posts_per_page' => 6,
'post_type' => 'post',
'paged' => $paged
) );
while( $query->have_posts() ){ $query->the_post();
include ('parts/content-loop.php');
}
upd: опытным путем было установлено, что пагинацию сбивает с толку post__not_in - что бы туда не попало (просто статьи или стики) - из запроса они исключаются, а из пагинации нет
что с этим делать - пока не понятно
upd2: оказалось, это известная проблема пагинации при попытке из основного цикла исключить прикрепленные статьи или применить offset
Лечится через функцию pre_get_posts
Под мою задачу проще оказалось прикрепить к посту произвольное поле и по нему сделать прикрепление постов и множественную сортировку