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

Язык

  • Русский
  • Русский
Связаться с нами

Поиск

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

  • Hosting CityHost

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() — используется для создания нескольких дополнительных циклов

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

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

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

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

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

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

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

Книги из этой категории:
Видеокурс по SEO-оптимизации WordPress

Видеокурс по SEO-оптимизации WordPress

Представляю вашему вниманию бесплатный Видеокурс по SEO-оптимизации WordPress. Курс охватывает все основные темы, изучив которые вы сможете провести полную внутреннюю ...

Смотреть

Делаем сайт на WordPress еще лучше: правильная seo-оптимизация и широкий выбор плагинов для разных задач

Делаем сайт на WordPress еще лучше: правильная seo-оптимизация и широкий выбор плагинов для разных задач

Десятилетию WordPress посвящается. Поскольку движок WordPress все еще считается ведущей блоговой платформой и в сравнении с популярными блог-сервисами (livejournal.com, liveinternet.ru), ...

Смотреть

Как сверстать тему для WordPress

Как сверстать тему для WordPress

Добавление темы Для начала в папке themes создадим папку нашего шаблона «whitesquare». В ней будет находиться папка images и два ...

Смотреть

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

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

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

Смотреть

Как раскрутить блог на WordPress?

Как раскрутить блог на WordPress?

Вы создаете свой блог на системе WordPress и конечно же хотите, чтобы его посещало как можно больше людей. Возникает закономерный ...

Смотреть

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

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

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

Смотреть

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

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

Делаем сайт на WordPress еще лучше: правильная seo-оптимизация и широкий выбор плагинов для разных задач

Десятилетию WordPress посвящается. Поскольку движок WordPress все еще считается ведущей ...

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

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

Введение в глобальные переменные WordPress

Начинаем небольшую серию статей по глобальные переменные WordPress. В данном ...

« 50 оттенков серого » – новелла для дизайнеров

Читали ли вы эротический роман «Пятьдесят оттенков серого»? Несмотря на ...

WordPress при обновлении плагинов просит ввести ftp

Не раз сталкивался с проблемой на localhost, что после установки ...

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

Проверяем поддержку миниатюр в WordPress Для начала нужно убедиться в ...

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

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

We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.
Cookie settingsACCEPT
Manage consent

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
CookieDurationDescription
cookielawinfo-checbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytics
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Others
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
SAVE & ACCEPT