Используем больше, чем один главный цикл на странице без дублирования записей.

Проблема
Большинство современных тем, а особенно "журнальные" темы, выводят как минимум два главных цикла на главной странице. Данный метод очень полезен, например, для раздела "выделенные записи". Но, если использование двух главных циклов на странице реализуется легко, то предотвратить вывод дублирующихся записей не так просто. Пока вы не знаете о данном методе.

Решение
1. Начнем с первого главного цикла. Ничего сложного: в примере мы просто получаем 8 последних записей с помощью параметра showposts. Открываем файл index.php и вставляем в него следующий код:
<?php
query_posts('showposts=8');
$ids = array();
while (have_posts()) : the_post();
$ids[] = get_the_ID();
the_title();
the_content();
endwhile;
?>

2. Затем наступает время реализовать второй главный цикл. В нем мы получаем все записи, за исключением тех, которые уже выведены в первом цикле:
<?php
query_posts(array('post__not_in' => $ids));
while (have_posts()) : the_post();
the_title();
the_content();
endwhile;
?>

3. Сохраняем файл index.php и наслаждаемся результатом.

Описание решения
Первый цикл начинается с очень полезной функции query_posts(), которая позволяет задавать параметры, используемые в главном цикле. Параметр showposts дает вам возможность указать количество записей. Непосредственно перед циклом мы создаем массив PHP $ids, в котором хранятся все ID записей, используемых в цикле.

Как и первый цикл, второй использует функцию query_posts() с параметром post__not_in. Данный параметр позволяет вам определить список записей, которые не нужно выводить, в форме массива PHP. Мы передаем массив $ids в качестве данного параметра. Все записи, полученные в первом цикле, будут пропускаться во втором цикле.
Теги:
главный цикл
Добавлено: 01 Мая 2018 20:22:34 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...