WEB -
Переключить навигацию

Язык

  • Русский

Введите не менее 3 символов для поиска.

  • Русский

Поиск

Введите не менее 3 символов для поиска.

Книги
  • Книги
  • JavaScript
  • HTML и CSS
  • Без категории
  • Другие темы
  • SEO
  • WordPress
  • Дизайн
  • PHP
  • Laravel
  • React js
  • Python
  • SQL и языки запросов
  • Android
  • Yii PHP framework
  • Статьи
  • Laravel
  • WordPress
  • Темы WordPress
  • Интернет магазин
  • JavaScript
  • © 2015-2026 Andrii Beznosko

  • Our partner

4 способа задать цикл loop WordPress

  • Описание
  • Описание/Скачать
  • Обсуждения
  • Пожаловаться

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

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

Способы задания цикла 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 и так далее. Количество отображаемых записей на страницах блога/сайта можно указать в настройках панели управления в разделе «Чтение».

Цикл с query_posts()

Функция query_posts() позволяет полностью изменить стандартный цикл, также с ее помощью можно установить только некоторые параметры для стандартного цикла.

<?php global $query_string; /* обязятельно объявлем!!! */
$posts = query_posts($query_string.'&posts_per_page=15&cat=-1,-2,-3'); /* исключаем отображение записей из трех категорий 1,2,3 и устанавливаем к-во отображаемых записей */ ?>

<?php /* Здесь пишем стандартный цикл */ ?>

<?php wp_reset_query(); /* обязятельно сбрасываем цикл */ ?>

У функции query_posts() есть много настраиваемых параметров, почитать о их применении можно в кодексе WordPress. Использовать этот тип задания цикла отлично подходит для задания параметров одного цикла, для задания нескольких циклов целесообразно использовать следующие функции.

Цикл с WP_Query()

Для лучшей функциональности и задания нескольких циклов рекомендуют использовать функцию WP_Query(). Она принимает такие же параметры как и query_posts(), но слегка отличается заданием цикла:

<?php $custom_query = new WP_Query('cat=-9'); /* исключаем категорию с айди 9 */
while($custom_query->have_posts()) : $custom_query->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; ?>
<?php wp_reset_postdata(); // reset the query ?>

Для задания цикла с помощью функции WP_Query() нам не нужна переменная query_string и для задания парметров цикла мы можем использовать теже параметры что и для query_posts(). Для того чтобы задать несколько циклов можете воспользоваться следующим шаблоном:

<?php // Цикл 1
	$one_query = new WP_Query('cat=-1'); // исключаем категорию
	while($first_query->have_posts()) : $one_query->the_post();
		...
	endwhile;
	wp_reset_postdata();

	// Цикл 2
	$two_query = new WP_Query('cat=-2'); // исключаем категорию
	while($second_query->have_posts()) : $two_query->the_post();
		...
	endwhile;
	wp_reset_postdata();

	// Цикл 3
	$three_query = new WP_Query('cat=-3'); // исключаем категорию
	while($third_query->have_posts()) : $three_query->the_post();
		...
	endwhile;
	wp_reset_postdata();
?>

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

Использовать WP_Query() целесообразно для создания нескольких, индивидуальных циклов, с его помощью можно задать любое необходимое к-во циклов. Подробнее о функции WP_Query() в кодексе WordPress

Цикл с get_posts()

Использование функции get_posts() самый простой и безопасный способ для задания нескольких циклов. В любом месте Вашей темы где Вы хотите задать цикл функция get_posts будет идеальным решением. Задается цикл с ее помощью, таким образом:

<?php
	global $post; /* Обязательно */
	$args = array('category' => -9); /* исключаем категорию с айди 9 /
	$custom_posts = get_posts($args);
	foreach($custom_posts as $post) : setup_postdata($post);
		<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
		<?php the_content(); ?>
	endforeach;
	wp_reset_postdata(); 
?>

Функция get_posts() требует массива параметров, кстати параметры к ней подходят от функций WP_query() и query_posts(), исключениями являются:

  • numberposts вместо post_per_page
  • category вместо cat

Подробнее о функции get_posts() читайте в кодексе WordPress

Подведем итоги

Как и обещалось мы раскрыли секреты задания и изменения цикла WordPress, напомню что когда используется:

  • query_posts() — используется для изменения стандартного цикла
  • WP_Query() — использется для изменения цикла или для создания нескольких циклов
  • get_posts() — используется для создания нескольких дополнительных циклов

Спасибо за внимание, буду признателен за комментарии и распространении ссылки на статью в социальных сетях!

Our partner
Автор: Неизвестный источник
Год издания: 2012
Категория: Главная » Статьи » Wordpress » 4 способа задать цикл loop WordPress
Издатель: не известно
Язык: Русский
Статус: For advanced readers
Формат: text
Количество страниц: 15
Ссылка для скачивания: Скачать
Добавил: Сен 26, 2014 19:08 Andrii

Все книги, представленные на этом сайте, предназначены только для ознакомления. Любое использование допускается только в обзорных целях. Если вы планируете дальнейшее использование, приобретите их у правообладателей. Администрация сайта не несёт ответственности за использование этих материалов. WEB-Программист

Всего комментариев: 0

Оставить комментарий Отменить ответ

Ваш email не будет опубликован.

Все книги, представленные на этом сайте, предназначены только для ознакомления. Любое использование допускается только в обзорных целях. Если вы планируете дальнейшее использование, приобретите их у правообладателей. Администрация сайта не несёт ответственности за использование этих материалов. WEB-Программист

Все книги, представленные на этом сайте, предназначены только для ознакомления. Любое использование допускается только в обзорных целях. Если вы планируете дальнейшее использование, приобретите их у правообладателей. Администрация сайта не несёт ответственности за использование этих материалов. WEB-Программист

Книги из этой категории:
4 способа задать цикл loop WordPress

4 способа задать цикл loop WordPress

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

Смотреть

Вся правда о functions.php

Вся правда о functions.php Файл functions.php в WordPress давно окружён мифами. Для одних это главное место, куда можно складывать любой ...

Смотреть

Миниатюры в WordPress. Как добавить поддержку миниатюр в WordPress и настроить их отображение

Миниатюры в WordPress. Как добавить поддержку миниатюр в WordPress и настроить их отображение Миниатюры в WordPress, которые также часто называют ...

Смотреть

Таксономию получить

Как получить текущую таксономию у WordPress с помощью get_term_by()

Как получить текущую таксономию в WordPress с помощью get_term_by() В WordPress таксономии (например, категории или метки) часто используются для фильтрации ...

Смотреть

При обновлении темы сохранить ключи и счетчики для Yandex, Google и. т. д

Часто при ре дизайне темы для Wordpress сталкиваются с такой проблемой что в header.php старой темы били meta-ключи для yandex, ...

Смотреть

wordpress-ftp-update_remaster

При обновлении просит FTP доступ WordPress

Часто при установке плагинов на свой сайт (особенно на localhost) Wordpress прости дать ФТП доступ Это часто раздражает. Что б ...

Смотреть

Наши партнеры
Our partner
4 способа задать цикл loop WordPress

Смотрите также:

4 способа задать цикл loop WordPress

Здравствуй, дорогой читатель! Сегодня хочу продолжить пополнять копилку разработчика WordPress ...

Вся правда о functions.php

Вся правда о functions.php Файл functions.php в WordPress давно окружён ...

Миниатюры в WordPress. Как добавить поддержку миниатюр в WordPress и настроить их отображение

Миниатюры в WordPress. Как добавить поддержку миниатюр в WordPress и ...

Как получить текущую таксономию у WordPress с помощью get_term_by()

Как получить текущую таксономию в WordPress с помощью get_term_by() В ...

При обновлении темы сохранить ключи и счетчики для Yandex, Google и. т. д

Часто при ре дизайне темы для Wordpress сталкиваются с такой ...

При обновлении просит FTP доступ WordPress

Часто при установке плагинов на свой сайт (особенно на localhost) ...

Связаться с нами

- Премиум темы и плагины WP Star бесплатно -

Поддержать автора

Настройки cookie

Мы используем необязательные аналитические cookie, чтобы понимать, какие материалы полезны. Вы можете продолжить без аналитики.

Вы можете изменить свой выбор в любое время.