- Файл loop.php – для чего он нужен в WordPress и как им пользоваться
- Как использовать файл loop.php
- Для чего нужен loop.php
- Что такое Цикл WordPress — The Loop
- Полный пример цикла
- » title=»Ссылка на: «>
- Другие варианты цикла
- Зачем нужно понимать внутри Цикла мы или нет?
- Цикл WordPress: что такое the loop WordPress
- Стандартный цикл WordPress
- Пример стандартного цикла
- Цикл WordPress на основе query_posts()
- Пример цикла на основе query_posts()
- Цикл WordPress на основе WP_Query()
- Пример цикла WP_query()
- Пример множественных циклов WP_guery
- Цикл WordPress на основе get_posts()
- Пример цикла get_posts()
- Еще статьи
- Похожие посты:
Файл loop.php – для чего он нужен в WordPress и как им пользоваться
Цикл используется в WordPress для отображения каждой записи. Используя Цикл, WordPress обрабатывает каждую из этих записей для вывода на текущей странице и форматирует ее в соответствии с указанными критериями внутри Цикла. Любой HTML или PHP код, раположенный внутри Цикла, будет повторен для каждой записи.
Как использовать файл loop.php
Для того, чтобы разобраться как работает файл loop.php следует посмотреть на его стандартный (упрощенный для понимания) код:
Вот такое содержимое в файле loop.php выведет заголовки и анонсы всех записей, которые существуют, или выведет соответствующее сообщение, если записей нет. Данный пример самый простой и его можно модернизировать практически как угодно, в зависимости от того, что нужно получить.
Но после того, как этот файл будет создан, его нужно подключить в нужный шаблон (например, в шаблоне index.php) следующим образом:
После этого, на главной странице WordPress блога появятся заголовки и анонсы записей.
Для чего нужен loop.php
Содержимое цикла можно записать напрямую в файл index.php и все будет работать точно так же. Но в случае с loop.php гораздо удобнее работать с кодом + код визуально получается чище и понятнее.
Также мы можем создать несколько файлов loop.php с различным содержимым (например, только заголовки записей) и подключать нужный файл в нужном шаблоне. Это понадобится, к примеру, в том случае, если на странице рубрик нужно вывести только заголовки записей без анонса.
Для этого следует создать файл loop-category.php со следующим содержимым:
И подключить этот файл в шаблоне category.php:
Вариантов использования WordPress цикла и файла loop.php великое множество. Как вы будете это использовать, зависит тот вашей фантазии.
- ⭐ Laravel или WordPress — что выбрать для своего сайта? Привет! Это статья для владельцев сайтов и для тех, кто хочет запустить свой Онлайн-проект или Интернет сервис. Ну, если ты придумал какой-то микро-стартап или нужен сайт для обслуживания твоего бизнеса…
- ⭐ Сайт на Elementor медленно загружается. Что делать? Привет! Хочу поделиться своим мнением про плагин для WordPress Elementor, и рассказать о том, почему сайты на Elementor получаются «плохими» и «медленными» в большинстве случаев. Парочка важных поправок Во-первых, сам…
- ⭐ Плагины нагружают и тормозят WordPress. Что делать? Привет! Часто встречаю в различных блогах про WordPress такую мысль, что большое количество плагинов нагружает WordPress. Ну, будто бы WordPress сайт начинает “тормозить“, если установить огромное количество плагинов. Будто бы…
- ⭐ Timeweb — отзыв и подробный обзор Привет! Timeweb — это компания, которая предоставляет услуги хостинга и VPS/VDS сервера в аренду. Этот пост можно воспринимть как отзыв о Timeweb, поскольку описывать я буду свой персонльный опыт работы…
Что такое Цикл WordPress — The Loop
Начну с того, что говорить «цикл loop» — это неправильно. Это тоже самое, что сказать, — «цикл цикл», т.е. loop = цикл = повторяющееся действие. Правильно говорить просто «Цикл WordPress». Далее в тексте «Цикл WordPress» — тоже самое, что «loop», «the loop» или «цикл the loop WordPress». Цикл WordPress (The Loop) — это перебор записей (постов) и вывод какой-либо информации о каждом посте. Цикл получает массив записей (объектов), перебирает этот массив и во время перебора выводит информацию о каждом посте. При этом в цикле используются специально созданные для него функции: the_title(), the_permalink(), the_date() и т.д.
Когда говорится «Функция используется внутри Цикла WordPress» — это значит, что функцию можно использовать внутри цикла, при этом нет необходимости передавать ей параметры, потому что функция рассчитана на использование внутри цикла. Например, the_title() вызывается без параметров, но при этом функция будет выводить заголовок ткущей записи в цикле. Данные для вывода берутся из глобальной переменной $post .
Выводим данные записи. Здесь работают функции для цикла, например, the_title()
Записей нет.
Вся информация о записи (посте) хранится в глобальной переменной $post . Предположим, что цикл обрабатывает массив содержащий в себе данные 10 постов, тогда у цикла будет 10 повторений и переменная $post будет меняться 10 раз, и при каждом повторении с переменной $post будет считываться информация о посте и выводится на экран, через теги шаблона: the_title() , the_content() . Таким образом, любой PHP/HTML код помещенный в цикл WordPress будет повторятся пока работает цикл: 10 итераций цикла — 10 повторений. Типичный пример Цикла — это вывод постов на странице категорий, меток, на главной странице WordPress.
Полный пример цикла
» title=»Ссылка на: «>
Автор:
Расположено в
Нет постов в цикле.
Другие варианты цикла
Примеры цикла выше, где используется have_posts() , получают данные для перебора из глобальной переменной $wp_query в которую WP автоматически добавляет данные в соответствии с тем, на какой странице мы сейчас находимся, например, на главной странице или странице рубрик, данные будут разные. Но, получить данные и затем их обработать в цикле мы можем самостоятельно.
// задаем нужные нам критерии выборки данных из БД $query = new WP_Query( [ 'posts_per_page' => 5, 'orderby' => 'comment_count' ] ); // Цикл global $post; if ( $query->have_posts() ) < while ( $query->have_posts() ) < $query->the_post(); > > else < // Постов не найдено >wp_reset_postdata(); // Сбрасываем $post. Возвращаем оригинальные данные
Зачем нужно понимать внутри Цикла мы или нет?
Отличать где используется Цикл WordPress, а где код находится за пределами цикла нужно, потому что в WordPress есть определенные теги шаблона, которые не работают за пределами цикла, например: the_title(), the_content(), the_excerpt() и т.д. Для того, чтобы каждая такой тег шаблона сработал, должна быть определена переменная $post , которая за пределами цикла WordPress неизвестна (точнее не корректна, если цикл запускался, то $post известна — она содержит данные последнего, обработанного в цикле поста, но это уже другая тема).
Последнее из: loop
Последнее из: Новичкам
Цикл WordPress: что такое the loop WordPress
Цикл WordPress это постоянно повторяющейся действие, которое позволяет обрабатывать массив информации и выводить нужную информацию на текущей странице поста, а также формировать страницу поста в соответствии с критериями указанными внутри этого цикла.
Любой код, имеется в виду HTML и PHP, размещенный внутри цикла будет повторяться для каждой записи. Например, специальный тег comments_link() который выводит ссылку на показ формы комментария , применяется внутри цикла WordPress и будет повторяться для каждой записи.
Классический пример цикла, в файле index.php. Данный файл отображает только содержимое каждого сообщения, в соответствии с условиями, использованными для подготовки Цикла. Этот пример показывает, как мало нужно для работы Цикла.
Например, в файле content.php есть цикл, в котором последовательно прописаны теги, выводящие заголовок статьи, содержание статьи, комментарии статьи. Следовательно, каждая статья будет начинаться с заголовка, потом содержание, потом комментарии. Но стоит поменять местами теги выводящие комментарии и содержания, все статьи будут начинаться с заголовка, потом комментарии, потом содержание.
В WordPress возможны четыре построения циклов для вывода записей:
- Стандартный цикл WordPress;
- Цикл WordPress на основе query_posts();
- Цикл WordPress на основе Wp_Query();
- Цикл WordPress на основе get_posts().
Стандартный цикл WordPress
Стандартный цикл WordPress это цикл с предусловием (оператор PHP while). В стандартном цикле мы не указываем данные для выборки записей. При входе в цикл вычисляется условие и, если его значение отлично от нуля, выполняется тело цикла. Поэтому, стандартный цикл сразу начинаем с if (have_posts()), и если запись присутствует, то тело цикла выполняется до его окончания, а данные после обработки выводятся на экран.
Пример стандартного цикла
Более точно, это работает так:
После того как WordPress загрузил заголовок блога и передал его в шаблон, переходим к Циклу записей. Функция have_posts() вызывает переменную $wp_query->have_posts(), которая проверяет счетчик цикла на наличие любых записей во всем массиве записей. Также функция the_post() вызывает переменную $wp_query->the_post(), которая увеличивает счетчик цикла и устанавливает глобальную переменную $post, аналогично всем данным записей. Выполнив цикл один раз, функция have_posts() вернет false(нет) и цикл закончится.
Цикл WordPress на основе query_posts()
Функция query_posts() позволяет изменить базовый запрос и вывести нужный нам вариант записей. query_posts() не предназначена для создания нового цикла, а только для изменения стандартного цикла.
Другими словами, цикл WordPress на основе query_posts() это стандартный цикл WordPress с измененными (дополненными) параметрами запроса. Например, функцией query_posts() можно вырезать отдельные категории или изменить порядок сортировки или убрать отдельные статьи или изменить количество записей.
Важно: при вызове query_posts создается новый объект wp_query, который затем будет использоваться в цикле, поэтому функция query_posts должна располагаться перед стандартным циклом WordPress. При таком расположении WordPress перестает учитывать параметры записи, полученные из URL, и цикл выполняется с параметрами запроса query_posts().
Пример цикла на основе query_posts()
Здесь стоит поговорить, про параметры функции query_posts(). Находится query_posts() в файле wp-includes/query.php.
Цикл WordPress на основе WP_Query()
Цикл WordPress на основе класса WP_Query() используется для вывода записей, которые никак не связанны со страницей или для создания множественных циклов. Выглядят эти циклы аналогично циклам с использование функции query_posts(). Параметры для WP_Query() такие же.
Особенностью циклов на основе WP_Query() является создание нового объекта ($query), который не связан с аналогичным глобальным объектом $wp_query и поэтому никак не нарушается структура текущей страницы.
Так же, мы можем использовать новый объект в других целях, не только для вывода записей, но и для различного рода проверок.
Пример цикла WP_query()
Пример множественных циклов WP_guery
Цикл WordPress на основе get_posts()
Функция get_posts() используется для создания еще одного цикла, помимо основного. get_posts() получает записи (посты, страницы, вложения) из Базы Данных по указанным критериям.
Цикл WordPress на основе get_posts() считается самым удобным вариантом вывода нужных записей в нужном порядке. get_posts() в большинстве случаев полностью заменяет функцию WP_query(). Например,
- если нужно вывести 7 последних постов в сайдбаре или
- несколько случайных записей в футере — нет проблем;
- нужно вывести все картинки, прикрепленные к посту или
- вывести записи с определенным произвольным полем — get_posts() справится и с этим.
Функция get_posts() аналогично с query_posts() работает на основе класса WP_query() и поэтому передаваемые параметры одинаковые.
Примечание: Класс WordPress (тоже, что и класс php), это самодостаточный код выполняющий определенную функцию. Класс имеет свое имя, содержит собственные константы, переменные (называемые свойствами) и функции (называемые методами).
Пример цикла get_posts()
Выведем 5 записей из рубрики 13
13); // 5 записей из рубрики 13 $posts = get_posts($args); foreach( $posts as $post ) < setup_postdata($post); // стандартный вывод записей >wp_reset_postdata(); // сбрасываем переменную $post ?>
На этом про Цикл WordPress все!