Совместная работа 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();?>
Добавить комментарий