Как исключить дублирование записей при использовании нескольких циклов в WordPress

dubl-wpВ этой статье мы покажем вам как исключить дублирование записей при использовании нескольких циклов в WordPress.

Недавно один из наших пользователей столкнулся со следующей проблемой: дублирование записей при разработке собственной темы. Он пытался вывести свежие записи на главной странице, а затем отобразить список случайных записей в отдельном цикле (loop) на той же странице. Проблема заключалась в том, что самые свежие записи иногда дублировали случайные записи в цикле. (wpincode.com)

Решение исключения дублированных записей заключается в том, чтобы сохранять ID записи из первого цикла, а затем осуществлять проверку во втором цикле. Вот как это сделать. Ваш первый код цикла должен выглядеть примерно так (обратите внимание на «волшебную» строку):

<?php $my_query = new WP_Query('category_name=featured&posts_per_page=1');
  while ($my_query->have_posts()) : $my_query->the_post();

  $do_not_duplicate = $post->ID; //Это волшебная строка

?>
    
<?php endwhile; ?>

Итак, мы сохранили ID записи из первого цикла в переменную $do_not_duplicate, давайте теперь добавить проверку на нее в нашем втором цикле. Второй код цикла должен выглядеть примерно так:

<?php if (have_posts()) : while (have_posts()) : the_post();

  if( $post->ID == $do_not_duplicate ) continue; //Это волшебная строка

 ?>
   
  <?php endwhile; endif; ?>

Как только вы добавите эти две строки в свой код, ваши записи НЕ будут дублироваться.
Мы надеемся, что эта статья поможет всем начинающим разработчикам тем исключить дублирование записей при использовании нескольких циклов в WordPress.

Оригинал урока: wpincode.com
Урок для Вас подготовлен командой сайта www.red-star.pro.