softsprint menu Заказать

Как работает цикл the loop в темах WordPress — часть 4

Октябрь 15, 2014 в 1:47 | wiki

В статье Cоздание index.php для темы WordPress — часть 2 мы рассмотрели формирование файла index.php, в котором применили функцию <?php get_template_part(‘loop’); ?>, подключив тем самым файл loop.php

Дословно loop – это цикл. В WordPress под циклом (loop) понимают вывод постов. Простой пример цикла:

1
2
3
4
5
6
<?php if ( have_posts() ) :  while ( have_posts() ) : the_post(); ?>
   <!-- 
	Вывод поста с названием, категорией, тегами, датой публикации, прочее…
	-->
<?php endwhile; ?>
<?php endif; ?>

Как работает цикл (loop)?

Обратите внимание – знак в команде php «:» означает условие, а знак «;» — закрывает команду.

Изучим содержимое нашего файла loop.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<div id="content">  
			<?php if ( have_posts() ) :  while ( have_posts() ) : the_post(); ?>
				<article class="post">
					<h3><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h3>
					<p class="time"><?php the_time('F j, Y'); ?> в <?php the_time('g:i a'); ?> | <?php the_category(', '); ?> | <?php comments_number('Нет комментариев', '1 комментарий', '% комментариев'); ?></p>
					<?php the_content('read more >'); ?>
				</article>
			<?php endwhile; ?>
				<div class="navigation">
					<?php posts_nav_link(); ?>
				</div>
			<?php else : ?>
				<div class="post">
					<h2>По Вашему запросу ничего не найдено!</h2>
				</div>
			<?php endif; ?>
		</div>

В нашем случае loop работает так:

1) проверяем, есть ли посты на сайте if ( have_posts() и пока посты есть while ( have_posts() , выводим их функцией the_post(); в виде:

1
2
3
4
5
<article class="post">
					<h3><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h3>
					<p class="time"><?php the_time('F j, Y'); ?> в <?php the_time('g:i a'); ?> | <?php the_category(', '); ?> | <?php comments_number('Нет комментариев', '1 комментарий', '% комментариев'); ?></p>
					<?php the_content('читать далее'); ?>
				</article>

У нас каждый пост обрамлен в <article class=»post»></article> , имеет название-ссылку <h3><a href=»<?php the_permalink() ?>»><?php the_title(); ?></a></h3>, которая состоит из функций:

2) Когда выведены все посты (кол-во их указывается в админке WordPress) согласно условию <?php endwhile; ?> , срабатывает функция <?php posts_nav_link(); ?> , которая выводит ссылки на предыдущую и следующую страницы.

3) Если же никаких постов не нашлось, то срабатывает альтернативный вариант <?php else : ?> и выводится <h2>По Вашему запросу ничего не найдено!</h2> .

На этом цикл закрывается — <?php endif; ?> .

На сегодня всё! В следующем уроке рассмотрим цикл (loop) в рамках файла single.php, который выводит конкретный пост при его открытии по ссылке.

Давайте обсудим

softsprint heart

Наши контакты

Львов, Украина
mob: +380 97 551 44 55
skype: softsprint.net

Скажите Привет!