Уроки по программированию

Совместная работа post__not_in и next_posts_link

Совместная работа post__not_in и next_posts_link необходима если вы хотите исключить некоторые посты из цикла. Для исключения постов из цикла служит команда post__not_in,но к сожалению если ее использовать, то начинает барохлить next_posts_link он начинает выводить дублирующий контент.

Такую задачу мне нужно было решить для следующего дизайна

post__not_in

То что выделено красным прямоугольником я выводил через первый цикл, а то что выделено зеленым прямоугольником я выводил через второй цикл. Мне нужно было исключить из второго цикла посты которые входили в первый цикл.

Для этого я в первом цикле сохранил 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();?>

Комментарии к статье

  • Оставьте первый комментарий - автор старался

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *