Совместная работа post__not_in и next_posts_link необходима если вы хотите исключить некоторые посты из цикла. Для исключения постов из цикла служит команда post__not_in,но к сожалению если ее использовать, то начинает барохлить next_posts_link он начинает выводить дублирующий контент.
Такую задачу мне нужно было решить для следующего дизайна
То что выделено красным прямоугольником я выводил через первый цикл, а то что выделено зеленым прямоугольником я выводил через второй цикл. Мне нужно было исключить из второго цикла посты которые входили в первый цикл.
Для этого я в первом цикле сохранил id выведенных постов в массиве:
<?php $temp_query = $wp_query; ?>
<?php query_posts("showposts=6"); ?>
<?php while ($temp_query->have_posts()) : $temp_query->the_post(); ?>
//Сохраняем id постов в массив
<?$ids[] = get_the_ID(); ?>
//...
//вывод постов
//...
<?php endwhile; ?>
<?wp_reset_postdata();?>
А перед выводом второго цикла я прописал следующий код
<?$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;?>
<?php $temp_query2 = new WP_Query( array ('post__not_in' => $ids,'paged' => $paged));?>
<?php query_posts("showposts=6"); ?>
<?php while ($temp_query2->have_posts()) : $temp_query2->the_post(); ?>
...
//вывод постов
...
<?php endwhile; ?>
<?wp_reset_postdata();?>


Добавить комментарий