http://wm-monitoring.ru/ ')) {alert('Спасибо за то что установили нашу кнопку! =)');} else {alert('Очень жаль! =(');}"> http://wm-monitoring.ru/

Задаем цикл WordPress loop с помощью query_posts, WP_Query, get_posts

Опубликовано: 06.10.2017

Здравствуй, дорогой читатель!

Сегодня хочу продолжить пополнять копилку разработчика WordPress и познакомлю Вас с четырьмя способами задания главного цикла WordPress, получил он название в народе loop . Циклом называется, потому что это запрос к базе данных на наличе постов/записей в определенной таблице и если они есть то с помощью цикла while происходит перебор всех записей и отображение каждой из них на блоге с помощью специальных тегов WordPress.

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

Loop, который WordPress использует по умолчанию Вы можете найти в файле index.php cтандартной темы (на данный момент twentytwelve) начинается он обычно строками if(have_posts()) и содержит в себе всю разметку записи или списка записей. Как это ни странно но стандартный цикл прекрасно работает для большинства «одноцикловых» тем, но когда требуется создавать более сложные шаблонные конструкции, использующие для вывода информации несколько циклов или для вывода произвольных типов записей, то в таких случаях использовать стандартный цикл не получится. К счастью разработчики позаботились об этой проблеме и есть 4 способа задать цикл WordPress:

Стандартный цикл Цикл c query_posts() Цикл c WP_Query() Цикл c get_posts()

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

Стандартный цикл

<?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <div <?php post_class(); ?> id="post-<?php the_ID(); ?>"> <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1> <?php the_content(); ?> </div> <?php endwhile; ?> <div class="navigation"> <div class="next-posts"><?php next_posts_link(); ?></div> <div class="prev-posts"><?php previous_posts_link(); ?></div> </div> <?php else : ?> <div <?php post_class(); ?> id="post-0"> <h1>Ничего не найдено</h1> </div> <?php endif; ?>

Стандартный цикл включает в себя условие (if) и перебор (while). Условие на наличие постов, если постов нет то выводится контейнер с сообщением, что записей нет, а если записи есть то с помощью перебора отображается контент записи. Контент записи выводится стандартными тегами WordPress: the_title, the_content, the_excerpt, the_permalink и так далее. Количество отображаемых записей на страницах блога/сайта можно указать в настройках панели управления в разделе «Чтение».

Карта
rss