Столкнулся с одной интересной проблемой. Мне нужно было создать стартовую страницу, на которой выводились бы записи из двух категорий, но сделать так, чтобы в этих двух списках не было бы одинаковых постов. Конечно, если вы относите каждый пост только к одной категории, то пересечений не может быть в принципе. Но они появятся, если посты вы помещаете сразу в несколько категорий. В этом случае может получиться так, что при выводе двух списков постов вы можете увидеть один и тот же пост как в одном списке, так и в другом.
Для решения этой проблемы можно в ходе выполнения первого цикла запоминать ID постов, а в ходе выполнения второго цикла исключать эти посты. Выглядит это примерно так:
<!-- Первый цикл цикл --> have_posts()) : $my_query->the_post(); $do_not_duplicate = $post->ID; //запоминаем ID постов, выводимых в первом цикле ?> <!-- содержимое первого цикла --> <!-- Второй цикл --> ID == $do_not_duplicate ) continue; //пропускаем обработку повторяющихся постов ?> <!-- содержимое второго цикла -->
Обратите внимание на строчки с переменной $do_not_duplicate — они отвечают за то, чтобы посты в двух циклах не дублировались.
