Код, который выводит на экран посты вашего блога на главной странице, широко известен среди пользователей как WordPress Цикл (WordPress Loop) или просто Цикл (The Loop) в WordPress Codex.

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

В этом руководстве мы на примерах разберемся с базисными понятиями Цикла WordPress, чтобы вы получили четкое понимание того, что этот код делает, как его настроить и где найти в вашей теме WordPress.

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

Значение Цикла WordPress

Для начала, давайте взглянем на базовый код Цикла. Чуть ниже мы разберемся с каждой строчкой отдельно.

//Check If posts exist, if yes then execute while loop
 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
//Display Posts code here
           <h2><?php the_title() ;?></h2> //Display the title of the post
            <?php the_post_thumbnail(); ?> //Display the post thumbnail AKA featured image
            <?php the_excerpt(); ?> //Display excerpt of the post
<?php endwhile; else : ?> //End the while loop
                       <p><?php _e( ‘No Posts To Display.’ ); ?></p>
<?php endif; ?> //end If statement

В коде у нас есть оператор "if" и цикл "while". Оператор "if" проверяет, есть ли посты, доступные для отображения. Функция WordPress "have_posts" является булевой и возвращает истинное или ложное значение (true или false). Если посты найдены, то возвращается значение "true" и тогда код переходит к циклу "while".

В цикле “while” также есть функция "have_posts", которая возвращает значение “true” ровно столько раз, сколько есть готовых к показу постов согласно с настройками вывода постов в Консоли в меню Настройки → Чтение.

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

  • the_title — извлекает заголовок поста
  • the_post_thumbnail — извлекает изображение из поста
  • the_excerpt — извлекает отрывок (анонс) содержимого поста

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

Гиперссылки в заголовках постов

Скорее всего, вы уже видели такие заголовки постов, которые содержат ссылки непосредственно на сами посты. После нажатия на гиперссылку вы переходите к просмотру поста на отдельной странице. У большинства тем есть файл под названием single.php, который вызывается именно тогда, когда вы открываете сам пост.

Мы будем использовать WordPress функцию "the_permalink" и прикрепим к ней функцию "the_title", чтобы создать линк.

Пример:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
           <h2><a href=”<?php the_permalink(); ?>”><?php the_title() ;?></a></h2>
            <?php the_post_thumbnail(); ?>
            <?php the_excerpt(); ?>
<?php endwhile; else : ?> //End the while loop
             <p><?php _e( ‘No Posts To Display.’ ); ?></p>
<?php endif; ?>

Выводим контент поста, автора, дату и рубрику при помощи Цикла

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

  • the_content — выводит на экран полное содержимое блога
  • the_author — выводит на экран имя автора
  • the_time — выводит на экран время и дату
  • the_category — выводит на экран категорию поста

Ваш Цикл будет выглядеть примерно таким образом:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
           <h2><?php the_title() ;?></h2>
           <?php the_author(); ?> <?php the_time(‘F j, Y’); ?> <?php the_category(); ?>
           <?php the_post_thumbnail(); ?>
           <?php the_content(); ?>
<?php endwhile; else : ?> //End the while loop
             <p><?php _e( ‘No Posts To Display.’ ); ?></p>
<?php endif; ?>

Использование условных тегов

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

Например, если мы прикрепляем наш Цикл внутри условия “if”, которое проверяет, является ли текущая страница главной, то цикл будет выполняться только на главной странице.

<?php if (is_home()) {  //Returns true if current page is main/home page
        <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
         <h2><?php the_title() ;?></h2>
           <?php the_post_thumbnail(); ?>
           <?php the_excerpt(); ?>
<?php endwhile; else : ?>
          <p><?php _e( ‘No Posts To Display.’ ); ?></p>
<?php endif; ?>
} ?>

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

Ниже представлены некоторые из наиболее часто используемых и популярных условных тегов:

  • is_admin() — возвращает значение true, если админ вошел на сайт
  • is_single() — возвращает значение true, если пост кто-то просматривает запись
  • is_page() — возвращает значение true на некоторых страницах, например is_page(‘about-us’)
  • is_category() — возвращает значение true на страницах одной категории, например is_category(‘wordpress’)
  • is_tag() — возвращает значение true при использовании тегов
  • is_author() — проверяет конкретного автора и возвращает значение true, например is_author ("Имя автора")
  • is_404() — возвращает значение true, если страница не существует. Может использоваться для страниц 404 (404 pages), для выполнения кастомного Цикла
  • has_excerpt() — возвращает значение true, если пост имеет анонс.

Заключение

Мы рассмотрели Цикл WordPress в качестве двигателя прогресса тем оформления для WordPress. Это абсолютно необходимая деталь для вывода постов. В этой статье мы объяснили основы, но существует еще много способов того, как Цикл может использоваться, поэтому мы рекомендуем вам ознакомиться с ним непосредственно в действии.

Источник: cloudways.com

Вам понравился материал?

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

7 комментариев

сначала новые
по рейтингу сначала новые по хронологии
Алексей

Коллеги, а у меня такой вопрос есть. Возможно это где-то описано в статье на сайте, но честно говоря не увидел, хотя перелистал много статей. По умолчанию блог все мои посты (без категорий) публикует на первой странице. Мне бы хотелось некоторые посты отнести в другую категорию и публиковать их на отдельной странице. Ну допустим на главной странице все про Windows новости, а если есть новости по Linux или MacOS не публиковать их на главной, а чтобы они были на отдельной странице. Можно ли это реализовать без знания кода, с помощью может каких-то плагинов, или может даже самого WP?

Алексей

Спасибо. Там плагин какой-то используется еще похоже, Cherry чего-то там. Но вот какой он именно в библиотеке плагинов WP я не понял

Андрей

Можете подсказать: есть цикл для вывода постов

Как сделать, что бы этот цикл выводил только посты определенной категории?

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

Новичку все равно не понятно где и как с этим делом экспериментировать

Алексей

Эта статья скорее для тех, кто уже курит Кодекс, знаком со структурой WP, но остались нотки недопонимания.