Цикл. Механизм вывода
Цикл (Loop) — это стандартный механизм написанный на php, который WordPress использует для вывода сообщений через файлы шаблонов темы . Количество извлекаемых сообщений определяется количеством сообщений, отображаемых на странице, которое указано в настройках чтения. В цикле WordPress извлекает каждую запись из базы данных для отображения на текущей странице и форматирует ее в соответствии с инструкциями вашей темы.
Цикл извлекает данные для каждого сообщения из базы данных WordPress и вставляет соответствующую информацию вместо каждого тега шаблона. Любой код HTML или PHP в цикле будет обрабатываться для каждого сообщения .
Проще говоря, Цикл соответствует своему названию: он последовательно перебирает все сообщения, полученные для текущей страницы, и выполняет действие, указанное в вашей теме.
Цикл по умолчанию отображает следующую информацию для каждого сообщения:
Заголовок ( the_title() )
Время ( the_time() )
Категории ( the_category() ).
Вы можете отобразить другую информацию о каждом сообщении, используя соответствующие теги шаблона.
Вы можете использовать цикл для разных целей, например, чтобы:
- отображать заголовки сообщений и выдержки на главной странице вашего блога;
- отображать содержимое и комментарии к одному посту;
- отображать содержимое на отдельной странице с помощью тегов шаблона;
- отображать данные из настраиваемых типов сообщений и настраиваемых полей.
Вы можете настроить Цикл в своих файлах шаблонов для отображения и управления различным содержимым.
Примеры использования циклов
Основной цикл:
<?php
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
// Display post content
}
}
?>
Этот цикл выводит все сообщения выбранные для страницы. Подробнее:
- Функция
have_posts()
проверяет, есть ли посты. - При наличии сообщений
while
цикл продолжает выполняться до тех пор, пока условие в скобках является логически верным. Покаhave_posts()
остается верным, цикл будет продолжаться.
Использование цикла
Цикл должен быть размещен в index.php
, и в любых других шаблонах, которые используются для отображения информации записей. Поскольку вы не хотите дублировать свой заголовок снова и снова, цикл всегда следует размещать после вызова get_header()
. Например:
<?php
get_header();
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
// Display post content
}
}
?>
Любые теги шаблона , которые вы хотите применить ко всем сообщениям, должны существовать внутри блока цикла.
Исключение: Вы можете включить собственное сообщение 404 «не найдено», которое будет отображаться, если нет доступных сообщений, соответствующих указанным критериям.
Чрезвычайно простой index.php
файл будет выглядеть так:
<?php
get_header();
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
the_content();
}
} else {
_e( 'Sorry, no posts matched your criteria.', 'textdomain' );
}
get_sidebar();
get_footer();
?>
Что может отображать цикл
Цикл может отображать несколько различных элементов для каждого сообщения. Например, некоторые общие теги шаблонов , используемые во многих темах:
next_post_link()
– ссылка на пост, опубликованный в хронологическом порядке после текущего постаprevious_post_link()
– ссылка на пост, опубликованный в хронологическом порядке перед текущим постомthe_category()
– категория или категории, связанные с просматриваемой записью или страницейthe_author()
– автор поста или страницыthe_content()
– основной контент поста или страницыthe_excerpt()
– первые 55 слов основного содержания поста, за которыми следует многоточие (…) или ссылка «Подробнее», ведущая к полному посту. Вы также можете использовать поле «Отрывок» сообщения, чтобы настроить длину определенного отрывка.the_ID()
– идентификатор поста или страницыthe_meta()
– настраиваемые поля, связанные с записью или страницейthe_shortlink()
– ссылка на страницу или пост с использованием URL-адреса сайта и идентификатора поста или страницыthe_tags()
– тег или теги, связанные с постомthe_title()
– название поста или страницыthe_time()
– время или дата поста или страницы. Формат можно настроить с помощью стандартного форматирования функции даты php.
Вы также можете использовать условные теги , например:
is_home()
– Возвращает true, если текущая страница является домашней.is_admin()
– Возвращает true, если включен экран администрирования, в противном случае – false.is_single()
– Возвращает true, если на странице в данный момент отображается один пост.is_page()
– Возвращает true, если на странице в данный момент отображается одна страница.is_page_template()
– Может использоваться для определения того, использует ли страница определенный шаблон, например:is_page_template('about-page.php')
is_category()
– Возвращает true, если страница или запись имеют указанную категорию, например:is_category('news')
is_tag()
– Возвращает true, если страница или запись имеют указанный тегis_author()
– Возвращает true, если внутри страницы архива автораis_search()
– Возвращает true, если текущая страница является страницей результатов поиска.is_404()
– Возвращает true, если текущая страница не существует.has_excerpt()
– Возвращает true, если запись или страница содержит отрывок.