Что такое цикл WordPress (the loop) и как его использовать.

Цикл WordPress the loop

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

Пример использования цикла WordPress

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php if (have_posts()) :  while (have_posts()) : the_post(); ?>  
	<!--Здесь располагаться тело записи и становятся доступными функции для получения данных--> 
	<!--Данный цикл выполняется столько раз, сколько есть записей для страницы--> 
	<!--при этом каждый раз значения переменных обновляется--> 
	<!--Например функция the_title() выведет на страницу заголовок записи или страницы-->  
	<h1><?php the_title(); ?></h1>
	<!--Функция the_content() вернёт нам содержимое записи-->  
	<div><?php the_content(); ?></div>
<?php endwhile; ?>  
<?php else: ?>  
	<!--Здесь указывается код, который нужно вывести в случае отсутствия записей -->
	<h1>Записи отсутствуют</h1>
<?php endif; ?>

Вышеуказанный код проверяет есть ли записи для данной страницы и если такие существуют, выводит их в цикле while. Цикл (the_loop WordPress) используется даже если для страницы есть всего одна запись. Другими словами, цикл WordPress перебирает массив содержащий информацию о записях относящихся к текущей странице

Так же можно по другому реализовать the_loop WordPress (цикл):

1
2
3
4
5
6
7
8
<?php  
	global $post;  
	$posts = get_posts('numberposts=3&offset=1&category=8');  
	foreach($posts as $post){  
	setup_postdata($post);  
?>  
	<!-- Здесь распологаеться тело записи, как в прошлом примере. -->  
<?php } ?>

Информация хранящаяся в $post цикла WordPress

Вся информация записи которая выводиться в цикле, храниться в объекте который доступен в переменной $post. Давайте рассмотрим более подробно что можно получит из переменной $post:

  • ID — Номер ID записи;
  • post_author — Идентификатор автора запрашиваемой записи;
  • post_date — Дата создания запрашиваемой записи в виде YYYY-MM-DD HH:MM:SS;
  • post_date_gmt — Дата создания запрашиваемой записи по Гринвичу — YYYY-MM-DD HH:MM:SS;
  • post_modified — Дата последнего изменения запрашиваемой записи в виде YYYY-MM-DD HH:MM:SS;
  • post_modified_gmt — Дата последнего изменения запрашиваемой записи по Гринвичу YYYY-MM-DD HH:MM:SS;
  • post_content — Сам текст (контент) запрашиваемой записи;
  • post_title — Заголовок запрашиваемой записи;
  • post_excerpt — Анонс (вводный текст) запрашиваемой записи;
  • post_status — Статут запрашиваемой записи, который может быть: private, publish, inherit, pending, draft, static, future, object, attachment, trash;
  • comment_status — Можно ли комментировать запись, ответ может быть: closed, open, registered_only;
  • ping_status — Статус трэкбэков/пингов запрашиваемой записи, может быть следующим: closed, open;
  • post_password — Пароль запрашиваемой записи;
  • post_name — Слаг записи — название которое указывается в ЧПУ адресе записи(home иди about и т.п.);
  • to_ping — URL из записи, на которые необходимо отправить уведомления в случае обновлении записи;
  • pinged — URL из записи, которыми уже было получено уведомление об обновлении;
  • post_parent — ID идентификатор родительской страницы записи;
  • guid — Ссылка на запрашиваемую запись;
  • menu_order — Порядковый номер записи для создания меню WordPress;
  • post_type — Тип запрашиваемой записи. Может быть: page, post, attachment;
  • post_mime_type — MIME-тип запрашиваемой записи. К примеру: zip, png, gif, pdf, jpg;
  • comment_count — Кол-во комментариев запрашиваемой записи;

Какие именно записи выводятся с помощью цикла WordPress

Стоит отметить, что по умолчанию в цикле выводятся записи которые относятся к текущей странице. Т.е. если мы находимся на странице архива, в цикле будут перебирается и выводиться все записи относящиеся к текущей категории архива. Если мы находимся на одиночной странице, то цикл получит в обработку только одну запись, которая по сути и есть текущая одиночная запись.

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

1
2
3
4
5
6
7
8
9
<!--Получаем все записи из категории с ID = 7 -->	
<?php query_posts('cat=7')?>
<?php if (have_posts()) :  while (have_posts()) : the_post(); ?>  
	<!--Тело записи -->	
<?php endwhile; ?>  
<?php else: ?>  
	<!--Здесь указываеться код, который нужно выывести в случае отсутствия запией -->
	<h1>Записи отсутствуют</h1>
<?php endif; ?>

или так:

1
2
3
4
5
6
7
8
9
<!--Получаем для обработки в цикле запись постоянной тсраници с ID=3 -->	
<?php query_posts('page_id=3')?>
<?php if (have_posts()) :  while (have_posts()) : the_post(); ?>  
	<!--Тело записи -->	
<?php endwhile; ?>  
<?php else: ?>  
	<!--Здесь указываеться код, который нужно выывести в случае отсутствия запией -->
	<h1>Записи отсутствуют</h1>
<?php endif; ?>

Комментариев к записи: 1

  1. Все понятно! Какнибуть переберу свой блог. Буду знать куда зайти.

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


− 3 = три