Цикл в WordPress

Циклы в WordPress нужны для того, чтобы выводить контент блога (записи и страницы). В зависимости от страницы, на которой вы находитесь, цикл будет вставлять соответствующее содержимое. То есть на на странице с рубриками будет выводиться содержимое рубрик, на странице с постом — сам пост, а на главной то, что указано в настройках Параметры > Чтение и так далее.

Начало цикла

<?php while (have_posts()) : the_post(); ?>

Конец цикла

<?php endwhile; ?>

Как видите,это обычный PHP-цикл while, а это значит, что его содержимое будет повторяться до тех пор, пока выполняется условие.

В переводе с английского have_posts() означает «есть посты(записи)». Короче говоря до тех пор, пока они есть, цикл будет прокручиваться снова. Чаще всего встречается запись цикла с условием.

Начало цикла

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

Конец цикла

<?php endwhile; else: ?>
<p>Записей не найдено.</p>
<?php endif; ?>

Содержимое цикла

Я уже говорил, что всё, что находится внутри цикла, будь это php-код или HTML, или и то и другое, будет повторяться для каждой записи.

Также существуют специальные теги для вывода информации о посте:

the_title(); // заголовок
the_content(); // контент
the_permalink(); // ссылка
the_excerpt(); // цитата
the_category(', '); // рубрики, в скобках разделитель, например запятая
the_author(); // автор
the_time('j M Y'); // время и(или) дата публикации, в скобках указывается формат, например 'j M Y G:i' - 'день месяц год часы:минуты'

А теперь поинтереснее, теги к записи:

the_tags($before, $separator, $after) // теги(метки)

$before — текст перед тегами, по умолчанию Tags:, $after — текст «после», по умолчанию не выводится ничего, $separator — разделитель тегов, по умолчанию (,) запятая.

Пример:

<?php the_tags('Метки:', ' &bullet; ', '<br />'); ?>

Также можно вывести метки в виде списка:

<?php the_tags('<ul><li>','</li><li>','</li></ul>'); ?>

Миниатюра (изображение) к записи.

the_post_thumbnail();

Только перед тем, как использовать эту функцию, надо включить поддержку миниатюр в вашей WordPress-теме, добавив этот код в файл functions.php:

if ( function_exists('add_theme_support')){ 
  add_theme_support('post-thumbnails'); 
}

В том случае, если вы захотите создать свой собственный цикл, то есть например выводить записи из какой-то определённой рубрики, либо вывести определённое количество записей, не зависящих от настроек в админке, либо отсортировать их случайным образом, (и т.д.) то вам следует воспользоваться query_posts() либо WP_Query()

Миша Рудрастых Разработчик WordPress WooCommerce

Миша Рудрастых

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.

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