@Esal

Почему срабатывает пагинация при скрытии прикрепленных постов в цикле?

Дано 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

Под мою задачу проще оказалось прикрепить к посту произвольное поле и по нему сделать прикрепление постов и множественную сортировку
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы