AzaBroflovski
@AzaBroflovski
js developer

Как повторно использовать цикл вывода записей?

Как повторно использовать цикл вывода постов больше чем один главный цикл на странице без дублирования записей?
  • Вопрос задан
  • 227 просмотров
Решения вопроса 2
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Из описания задачи сложно понять что вы хотите сделать. Для повторного использования цикла существует функция rewind_posts(), но после такой "перемотки" вы просто попадете в начало стандартного цикла. То есть, сможете работать с теми же записями, по которым уже один раз прошлись, то есть, будете выводить дубликаты. А вы хотите без дубликатов. Тогда вопрос - а что тогда должен вывести цикл? Следующую страницу / порцию записей?
Ответ написан
AzaBroflovski
@AzaBroflovski Автор вопроса
js developer
Я решил задачу, если кому-то интересно, то вот :

<?php
query_posts('showposts=8');
$ids = array();
while (have_posts()) : the_post();
$ids[] = get_the_ID();
the_title();
the_content();
endwhile;
?>


<?php
query_posts(array('post__not_in' => $ids));
while (have_posts()) : the_post();
the_title();
the_content();
endwhile;
?>


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

Как и первый цикл, второй использует функцию query_posts() с параметром post__not_in. Данный параметр позволяет вам определить список записей, которые не нужно выводить, в форме массива PHP. Мы передаем массив $ids в качестве данного параметра. Все записи, полученные в первом цикле, будут пропускаться во втором цикле.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы