Цикл WordPress: что это такое и что о нем нужно знать

Опубликовано: 2023-10-25

Если вы разработчик тем WordPress, программист или просто энтузиаст, желающий узнать, что такое цикл WordPress, эта статья для вас! Без лишних слов, давайте начнем с основ: что такое цикл?

Цикл WordPress — это PHP-код, который показывает сообщения WordPress или, проще говоря; он используется в различных темах для отображения сообщений на любой веб-странице. Он не только работает на большинстве страниц, которые вы видите, но также позволяет вам изменять и настраивать его по своему вкусу.

Эти циклы веб-сайта можно использовать для составления списка сообщений по количеству комментариев, отображения сообщений с изображениями и т. д.

Если вы посмотрите на цикл, то увидите, что некоторые функции запускаются по умолчанию для отображения сообщений. Разработчики тем могут использовать эти функции и теги шаблонов, чтобы настроить отображение каждого сообщения в цикле.

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

Цикл WordPress, без сомнения, является наиболее важной частью кода WordPress, и давайте углубимся в то, как зацикливается ваш сайт.

Цикл страниц WordPress для начинающих

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

Вот пример того, как работает цикл WordPress по публикациям:

  1. вы запускаете цикл,
  2. предпринимать действия с каждой найденной публикацией или страницей,
  3. закройте петлю.

Эти три шага представляют собой основную логику цикла. С этого момента вы можете проявить творческий подход и фильтровать найденные сообщения с помощью запроса. Запрос сообщает циклу, что мы ищем. В нашем примере это будет выглядеть так:

  1. определить, что мы ищем,
  2. запустить цикл,
  3. предпринимать действия с каждой найденной публикацией или страницей,
  4. закройте петлю.

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

Цикл while в WordPress работает точно так же.

Пример стандартного цикла WordPress

Ниже приведен пример стандартного цикла WordPress, который можно использовать на любой странице.

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
// Post display here
<?php endwhile ?>
<?php else : ?>
// Content if there are no posts to show
<?php endif ?>

Взгляните на функции have_posts() и the_post() . Первый определяет, есть ли какие-либо сообщения для отображения, а второй настраивает данные и внутренние указатели, которые помогают функции have_posts() .

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

Если есть посты, которые мы ищем, то цикл будет отображать их один за другим.

Вот блок кода, который будет отображать сообщения, это за нас!

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
<div <?php post_class() ?>>
<h2><a href='<?php the_permalink() ?>'><?php the_title() ?></a></h2>
<div class='post-excerpt'>
<?php the_excerpt() ?>
</div>
<div class='post-meta'>
<time><?php the_time( 'Ymd' ) ?></time>
<?php if ( has_category() ) : ?>
<span class='post-categories'><?php the_category( ', ' ) ?></span>
<?php endif ?>
</div>
</div>
<?php endwhile ?>
<?php else : ?>
<h2>There are no posts here</h2>
<p>Do you want to go back to the <a href='<?php echo site_url() ?>'>home page?
<?php endif ?>

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

Отличная работа! Теперь вы знаете, что такое пост-цикл!

Использование кода для изменения основного запроса

Прежде чем мы начнем, мы должны предупредить вас, что изменение основного запроса может иметь непредвиденные последствия, если вы не знаете, что делаете. Будьте осторожны во время экспериментов!

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

add_action( 'pre_get_posts', 'my_exclude_category' );
function my_exclude_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-92' );
}
}

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

Взгляните на функции is_home() и is_main_query() . Они здесь, чтобы убедиться, что запрос изменяется только на домашней странице и является ли это основным запросом.

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

Допустим, автор вашего веб-сайта заимствовал часть (или весь) своего контента, и вы хотите удалить все его сообщения навсегда или до тех пор, пока проблема не будет решена.

Это можно сделать, добавив такой код:

add_action( 'pre_get_posts', 'my_exclude_author' );
function my_exclude_author( $query ) {
$query->set( 'author', '-23' );
}

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

add_action( 'pre_get_posts', 'my_exclude_author' );
function my_exclude_author( $query ) {
if( !is_admin() ) {
$query->set( 'author', '-23' );
}
}

Часто задаваемые вопросы по циклу WordPress

Что такое цикл WordPress?

О боже, это возвращает меня назад! Итак, по своей сути цикл WordPress — это движок WP, который отображает контент из базы данных на вашем сайте.

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

Почему цикл так важен при разработке тем?

Ах, развитие темы , каждый раз веселая головоломка! Цикл похож на основу темы WordPress. Без него ваша тема была бы немым фильмом без сюжета.

Он извлекает контент на основе параметров WP_Query , а с помощью тегов шаблона вы можете настроить, что и как будет отображаться. Слышали ли вы когда-нибудь о темах со специальными стилями для определенных сообщений? Да, это магия цикла в действии.

Как WP_Query относится к циклу?

Хорошо, погрузитесь со мной здесь. WP_Query — это класс, который определяет и извлекает контент. Затем цикл обрабатывает результаты, возвращаемые WP_Query.

Думайте о WP_Query как о шеф-поваре, который готовит блюда, пока цикл подает их вашим гостям. А благодаря настраиваемым типам публикаций и таксономии этот шеф-повар может приготовить впечатляющий выбор блюд!

В чем разница между have_posts() и the_post()?

Классический вопрос! have_posts() проверяет, остались ли в запросе сообщения для прохода. Это все равно, что спросить: «Эй, есть еще песни в этом плейлисте?»

Тем временем the_post() настраивает текущую публикацию, поэтому вы готовы отобразить ее детали. Это похоже на нажатие кнопки воспроизведения следующего трека. Оба очень важны в танце петли.

Как я могу настроить, какие сообщения будут отображаться в цикле?

О, сила кастомизации! Чтобы изменить отображаемые сообщения, вы настраиваете параметры WP_Query или используете фильтр pre_get_posts .

Будь то цикл категорий , цикл тегов или любой другой пользовательский запрос , вы можете сделать очень многое. Хотите показывать публикации из определенной категории? Или, может быть, отсортировать их по настраиваемому полю ? Мир — твоя устрица!

Могу ли я иметь несколько циклов на одной странице?

Еще бы! Несколько циклов — это вещь, особенно если вам нужны разные разделы, например, список основных статей, за которым следует боковая панель с последними сообщениями.

Вам просто нужно сбросить цикл с помощью wp_reset_postdata() после каждого пользовательского WP_Query . А с частями шаблона все становится еще более организованным. Только помните: не переусердствуйте: никто не любит загроможденную вечеринку!

Что такое условные теги в контексте цикла?

Итак, условные теги являются хранителями цикла. Они позволяют вам контролировать, где и когда отображается определенный контент.

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

Как добавить нумерацию страниц в цикл?

Ах, пагинация, искусство не перегружать посетителей! Используя функции нумерации страниц , вы можете разбить свои сообщения на несколько страниц.

Вместо того, чтобы показывать бесконечный список сообщений, дайте своим пользователям передышку. Здесь помогают такие функции, как paginate_links() или классические ссылки «следующий и предыдущий». Потому что, давайте будем честными, никто не хочет прокручивать страницу вечно.

Зачем мне вообще нужно изменять основной запрос?

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

Используя действие pre_get_posts , вы можете настроить основной запрос , не создавая новый. Это похоже на настройку основных настроек стереосистемы для достижения идеального звука.

Что произойдет, если возникнет проблема с моей петлей?

Уф, был там! Если в цикле произошел сбой, ваш сайт может не отображать контент или, что еще хуже, выдавать ошибки. Всегда делайте резервную копию, прежде чем что-то делать. Проверьте параметры WP_Query и иерархию шаблонов .

А если все остальное не поможет, Кодекс WordPress и форумы сообщества станут золотыми приисками для устранения неполадок. Помните, что каждый разработчик хотя бы раз сталкивается с ошибкой. Ты получил это!

Завершающие мысли о цикле WordPress

Использование цикла WordPress — отличный способ настроить ваши записи, страницы или, проще говоря, ваш веб-сайт. Цикл требует от вас базового понимания того, как работает WordPress и логики кода.

Если вы не хотите провести быстрый тест, мы не рекомендуем использовать функцию query_posts(). Вы можете использовать различные перехватчики, если вам нужно изменить исходный запрос. Всегда будьте осторожны при изменении кода цикла WordPress.

Мы надеемся, что эта статья стала хорошим первым шагом на пути к освоению цикла WordPress!

Если вам понравилась эта статья о цикле WordPress, вам также следует прочитать следующие:

  • Ошибка 504 в WordPress: как исправить
  • 12 советов по созданию успешного премиум-плагина или темы WordPress
  • Как использовать кеширование браузера в WordPress? Шаги, которые необходимо выполнить