Wordpress

Цикл wordpress: Что такое Цикл WordPress — The Loop

29.05.2021

Содержание

Цикл в WordPress

Циклы – не самая лёгкая для понимания тема в изучении WordPress, поэтому возможно вам будет легче изучить её при помощи моего видеоурока.

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

Начало цикла

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

Конец цикла

Как видите,это обычный 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>'); ?>

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

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

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

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

Миша

Недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

Цикл в WordPress — WordPressify

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

Параметры > Чтение и так далее.

Начало цикла

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

Конец цикла

Как видите,это обычный 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>'); ?>

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

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

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

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

Функции цикла в WordPress

get_children()Функция для получения дочерних постов, страниц, либо прикрепленных к посту файлов.
get_delete_post_link()Возвращает URL, переход по которому позволяет удалить пост.
get_edit_post_link()Возвращает URL страницы редактирования поста в админке.
get_extended()Возвращает по отдельности контент до и после тега more
get_next_posts_link()Возвращает ссылку на следующую страницу с записями (более старыми)
get_permalink()Возвращает ссылку на пост.
get_post_type()Возвращает тип указанного / текущего поста.
get_posts()Возвращает массив объектов постов, соответствующих заданным параметрам
get_previous_posts_link()
Возвращает ссылку на предыдущую страницу с записями (более свежими).
get_queried_object_id()Позволяет вернуть ID текущего объекта в запросе – поста, элемента таксономии или автора.
get_query_var()Получает информацию о текущей странице (параметры глобального объекта $wp_query).
get_search_query()Возвращает текущий поисковой запрос на странице.
get_the_content()Возвращает содержимое текущего поста из базы данных.
get_the_date()Возвращает дату написания текущего поста.
get_the_excerpt()Возвращает отрывок либо текущей записи в цикле, либо той, ID/объект которой передан в функцию.
get_the_ID()Возвращает ID текущего поста.
get_the_time()Возвращает дату и/или время публикации поста.
get_the_title()Возвращает заголовок поста.
has_excerpt()Проверяет, заполнено ли у поста поле цитаты.
has_post_thumbnail()Проверяет, установлено ли изображение в качестве миниатюры поста.
have_posts()Проверяет наличие постов для вывода на странице.
paginate_links()Позволяет создать постраничную навигацию для чего угодно.
post_class()Выводит список CSS-классов для поста.
query_posts()Модификация или полное изменение основного цикла страницы.
setup_postdata()Нужна для того, чтобы в циклах функции get_posts() или же прямого вывода постов из БД работали такие функции, как the_title(), the_permalink() и т. д.
the_content()Выводит отфильтрованное содержимое поста.
the_date()Выводит или возвращает дату написания текущего поста, если дата текущего поста отличается от даты предыдущего поста.
the_excerpt()Выводит отрывок текущей записи в цикле.
the_ID()Выводит ID текущего поста.
the_permalink()Выводит ссылку на текущий пост в цикле.

Изучаем WordPress: Урок 1 — Цикл, базовые функции WP и их параметры

Сегодня начинаю серию статей о создании сайта на WordPress, статьи будут связаны друг с другом, по мере появления, через подрубрику: Сайтостроение – статьи по WP с учетом SEO тенденций. Предупреждаю сразу, возможно много воды.

Перед изучение WordPress следует первым делом изучаем базовые навыки, необходимые для работы web-мастера – HTML, CSS и JQuery. Забудьте об онлайн учебниках и о прочем, уже давно существует множество бестселлеров. Просто выберите себе поновее и за работу.

Сам WordPress лучше всего понять по официальной документации, но чтоб понять её, нужно знать PHP и как работают CMS. В противном случае придется набраться опыта из примеров и немного поработать с ними, чтоб иметь какое-то представления о функциях WP. Проштудируйте официальную документации, так вы заранее ответите на сотни своих вопросов и сэкономите время. Впрочем, для этого нужно понять, что же такое WordPress, чего там нормальным языком не говорят.

А понять это можно только обратившись к основам и принципам работы, по крайней мере только тогда до меня дошло, как все на самом деле просто. Это же я и попытаюсь донести до вас моим корявым, но надеюсь понятным, языком.

Цикл, базовые функции WP и их параметры

WordPress – это CMS (анг. Система управления контентов) необходимая для упрощения создания многостраничного сайта. Если у вас сайт из пары страниц – будет даже лучше обойтись без него. Вы сэкономите ресурсы сервера и не замедлите загрузку страницы. Но когда страниц много – любое их изменение вывалится в Ад.

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

Допустим у вас сайт по продаже ДСП свиспан, как в примере, вам нужно показывать на главной виды ДСП картинкой, их названием и переход к описанию.

Первым делом создается цикл:

и указывается его конец:

Эта конструкция уникальная, и используется обычно в таком виде, так что можете записать его в блокнот. Между этими двумя строками вы можете писать обычный код. указывает начало и конец PHP кода (что вне этих «скобок» к WordPress не относится). Из самого PHP здесь использован только синтаксис и условия (нужно пройти эти два пункта в учебнике по PHP). have_posts() и the_post() это базовые функции, уже заданные в файлах самого WordPress. Использовать их можно и расширенно, согласно документации. Но мы рассмотрим пример не на них, а на следующих функциях, которые вставим вместе с обычным кодом между этих двух строк, чтоб выводить название постов, картинки посто и ссылки на посты.

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

Как и все остальные представленные в примере функция the_post_thumbnail_url(‘medium’) является базовой, и используемый параметр medium является стандлартным. Информация о них всех находится на codex.wordpress.org. Все это существует физически в файлах самого WordPress и может быть отредактировано там, в случае необходимости. Но в этом случае изменения пропадут при обновлении WP (которое автоматическое, если не отключить). Зато в файле, находящимся по адресу «wordpess -> wp-includes -> post-thumbnail-template.php» вы можете узнать ВСЮ информацию о ней и о принципе её работы.

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

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

GD Star Rating
loading…

Рейтинг: 10.0 из 10 (1 голоса)

Сервис | Ещё один сайт на WordPress

2010

Компания ООО «Агрохим-Сервис» на рынке средств защиты растений (реализация минеральных удобрений, растворимые и жидкие удобрения,семян, средств защиты растений)

2011

Подписан контракт с компанией – Dupon.

2012

Подписан контракт с крупной Европейской компанией Байер Кроп Сайенс.

2014

В станице Егорлыкская, пер. Гагарина 79а приобрели территорию с жд. Подъездом.

2017

Компания растет и развивается, был подписан контракт с еще одной европейской компанией БАСФ.

Компания ООО «Агрохим-Сервис» была основана в сентябре 2009 года. Основной деятельностью нового предприятия была поставка средств защиты растений сельхозтоваропроизводителям южных районов Ростовской области.

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

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

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

Труженикам наших полей желаем
рекордных урожаев!

Центр развития и коррекции «Династия»

Центр «Династия» — единственное место, где работают с неговорящими детьми по авторской инновационной системе Созоновой Н. Н. — Куциной Е.В.

Центр открыл двери для детей и их родителей 11 января 2016 года.

Миссия Центра — улучшение качества жизни семьи и ребёнка. Повышая уровень развития речи и познавательной деятельности малыша, мы помогаем ему социализироваться в обществе!

Руководитель Центра:

 

Куцина Екатерина Владимировна, к.п.н., логопед-дефектолог высшей категории, соавтор методики по развитию речи детей с алалией «Читать раньше, чем говорить!», автор компьютерной программы «Сопровождение»

 

 

 

 

Методисты Центра:

Созонова Надежда Николаевна, учитель-логопед высшей категории, автор методики по развитию речи детей с алалией «Читать раньше, чем говорить!»

Созонов Владимир Алексеевич, учитель-дефектолог высшей категории, автор методики по развитию элементарных математических представлений у детей с проблемами в развитии.

Мы предлагаем индивидуальные развивающие занятия для детей  в возрасте от 1 года до 10 лет:

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

А также для ваших детей индивидуальные занятия по подготовке к школе (обучение чтению, письму, элементарным математическим представлениям, развитие связной речи, развитие внимания, памяти и логического мышления)

 

Для Вас работают высококвалифицированные логопеды-дефектологи.

Отличительные черты Центра развития и коррекции «Династия»:

  • использование авторской инновационной методики по вызыванию и развитию речи неговорящих детей;
  • использование уникальных авторских методик и сертифицированных в РОСПАТЕНТе компьютерных программ в работе с детьми со сложной патологией;
  • составление индивидуальной программы для каждого ребёнка;
  • обучение каждого специалиста руководителем и методистами Центра;
  • работа в команде единомышленников.

 

Федерация спортивного ориентирования Нижегородской области

Совсем скоро состоятся первые официальные старты летнего сезона!

17 апреля 2021 дисциплина кросс-спринт. 
Место проведения: Дзержинск, Лицей№21
Заявка Кросс-спринт
Информация


18 апреля 2021 дисциплина кросс-классика
Место проведения: п.Решетиха, пл.Решетиха
Заявка Кросс-классика
Информация


Положение о чемпионатах и первенствах Нижегородской области
Величина заявочного взноса

Всем участникам чемпионата и первенства Нижегородской области (группы Мужчины, Женщины, МЖ12, 14, 16, 18) необходимо пройти комиссию по допуску участников:

Вариант 1:
с 12 по 14 апреля с 10:00 до 17:00 — Нижний Новгород, ул. Юбилейная 35 (МБУ СШ №12)
Вариант 2:
с 12 по 14 апреля — Дзержинск, время и место прорабатываются
Вариант 3:
загрузить необходимые документы по ссылке

Запись опубликована автором Константин Зыбов в рубрике Без рубрики.

Очередное заседание президиума ФСОНО состоится 14.04 в 19:00 — Н.Новгород, ул.Юбилейная д.35 (МБУ СШ №12)

Запись опубликована автором Иван Повышев в рубрике Новости.

7 апреля стартует цикл тренировок «Весенний призыв»!

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

Весенний призыв 2021

Купить абонемент

7 апреля 

14 апреля

Запись опубликована автором Иван Повышев в рубрике Новости.

25 апреля состоится Чемпионат и Первенство Нижегородской области в кроссовых дисциплинах.

Место проведения: Арзамасский район
Центр: ФОБ «Улитка»

Информация
Заявка

24 апреля в Арзамасском центральном парке пройдут Чемпионат и Первенство Арзамаса
Заявка

Запись опубликована автором Иван Повышев в рубрике Соревнования.

24-25 апреля состоится Чемпионат и Первенство Нижегородской области в велокроссовых дисциплинах.

Место проведения: п. Большое Козино
Центр: л/б Морозко

Информация
Заявка

Запись опубликована автором Иван Повышев в рубрике Соревнования.

На этих тренировках также можно воспользоваться абонементом. А если у вас его еще нет, его можно приобрести прямо сейчас!

 

 

 

10 апреля                                             11 апреля                                                                                          Результаты                                         Результаты                                                                                   Сплиты                                                Сплиты                                                                                              Карты                                                   Карты

Запись опубликована автором Иван Повышев в рубрике Новости.

Открытие летнего сезона «Весна 2021». Чемпионат и первенство города Дзержинск по спортивному ориентированию

Оргкомитетом соревнований было принято решение о переносе даты соревнований с 10, 11 апреля 2021 (суббота, воскресенье) г. на 15 апреля 2021 г. (четверг). Прогноз величины снежного покрова в районе соревнований не позволяет провести дисциплину согласно требованиям безопасности и правилам соревнований.

Заявка и информация по соревнованиям на сайте СШ «Магнитная Стрелка».

Запись опубликована автором Константин Зыбов в рубрике Без рубрики.

Сегодня отмечает свой 70-ти летний юбилей Куприн Александр Сергеевич.

Куприн А.С. —  Уважаемый ориентировщик Нижегородской области, основатель клуба спортивного ориентирования «Купер-Утес», почетный член Федерации спортивного ориентирования Нижегородской области, организатор множества соревнований и сборов на территории Нижегородской области.

Поздравляем Александра Сергеевича с юбилеем, желаем крепкого здоровья и долгих лет жизни!

Запись опубликована автором Иван Повышев в рубрике Новости.

Всем тренерам и спортсменам, планирующим участие 22-25 апреля в Чемпионате и Первенстве Приволжского Федерального Округа и Фестивале спортивного ориентирования в городе Самара определиться и прислать заявку в установленной форме до 22.00, 12 апреля на адрес [email protected]

Подробности на сайте проводящей организации:
https://osamara.ru/chempionat-i-pervenstvo-pfo/

Запись опубликована автором Иван Повышев в рубрике Новости.

В 2021 году Мемориал Ю.В. Лебединсокго пройдет с 30 апреля по 3 мая, в Шатковском районе области на базе ДОЛ «Журавли»

Все подробности на странице соревнований
Информационный бюллетень №1
Заявка

С 6 апреля повышение взносов!

Запись опубликована автором Иван Повышев в рубрике Соревнования.

Объяснение цикла WordPress

Цикл WordPress большой. Это огромный. Это критично. Без него ваш сайт WordPress не будет работать.

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

Ничего не работает без цикла WordPress.

Итак, теперь мы установили, насколько важна петля, и вам может быть интересно, что это такое, если вы не сталкивались с ней раньше.

В этом посте я отвечу на этот вопрос. Я покажу вам, что такое петля, как она работает и куда должна идти. Я также дам вам несколько советов, как настроить цикл WordPress и заставить его работать на вас.

Давайте начнем с определения того, что делает цикл WordPress и куда он идет.

Что такое цикл WordPress и где его найти?

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

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

То, что цикл WordPress выбирает и выводит, зависит от нескольких вещей:

  • Какой контент просматривается
  • Любые изменения, внесенные вами в цикл WordPress (подробнее о нем позже).
  • Функции, которые вы используете для отображения элементов из базы данных (таких как заголовок, контент и любые метаданные).
  • HTML-код, в который вы помещаете свой контент.

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

В этом посте я разберу цикл в стандартной теме Twenty Sixteen.

Где цикл WordPress? Поиск в файлах шаблонов

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

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

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

Давайте взглянем на тему «Двадцать шестнадцать», чтобы разобраться во всем этом.

Вот файловая структура темы:

Есть куча файлов шаблонов:

  • 404.php
  • archive.php
  • footer.php
  • image.php
  • index.php
  • page.php
  • search.php
  • single.php

Тема также имеет некоторые части шаблона в основной папке:

  • комментариев.php
  • footer.php
  • header.php
  • searchform.php
  • сайдбар-контент-дно.php
  • sidebar.php

И у него есть дополнительные части шаблона внутри папки template-parts . Каждый из них будет называться где-нибудь еще в теме. Другие файлы, такие как functions.php и style.css , имеют свою особую роль.

Давайте взглянем на пример цикла WordPress.Сначала откройте файл page.php .

Вот его полный код:

Итак, какая часть этого цикла?

Хорошо. есть одна вещь, на которую нужно обратить внимание при поиске петли, и это строка:

Это то, что запускает цикл WordPress. И эта строка замыкает цикл:

Итак, это означает, что цикл в этом файле шаблона page.php выполняется с использованием следующих строк кода:

Но сюда не входят теги шаблона и HTML, отображающий содержимое цикла WordPress.Вместо этого все это содержится в файле content-page.php . Он делает это с помощью этой строки:

Эта функция get_template_part () извлекает содержимое части шаблона и запускает его в этот момент в файле шаблона, как если бы код был закодирован в этот файл.

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

  • 404.php не включает цикл WordPress, потому что, если пользователь попадает на страницу 404, не будет никаких данных для выборки и вывода.
  • archive.php и index.php извлекают часть шаблона для соответствующего формата сообщения, используя таксономию формата сообщения. Это означает, что вы можете написать часть шаблона для каждого формата сообщений с кодом, необходимым для вывода сообщений разных форматов. Если этих файлов не существует, он вернется к content.php .
  • фото.php не извлекает часть шаблона — вместо этого цикл кодируется в файле шаблона.
  • page.php извлекает часть шаблона content-page.php .
  • search. php извлекает часть шаблона content-search.php .
  • single.php извлекает часть шаблона content-single.php .

Цикл WordPress рассечен

Давайте перейдем к более подробному рассмотрению цикла WordPress.Поскольку мы уже работали с page.php , давайте рассмотрим файл content-page.php . Откройте это в своем редакторе кода.

Примечание. Если вы пишете тему, вы можете использовать части шаблона для цикла или закодировать ее непосредственно в файлах шаблона. Использование термина «пластина» сделает вашу тему более эффективной, но вы можете обнаружить, что используемая вами тема просто имеет цикл, закодированный в файле шаблона. Оба будут работать.

Вот код на странице содержимого .php :

Давайте пройдемся по каждому разделу этого раздела за раз.

Открытие элемента и отображение заголовка

Сначала файл открывает элемент article и выводит заголовок сообщения внутри элемента заголовка :

Элемент article имеет идентификатор, который использует тег шаблона the_ID () для получения идентификатора сообщения, и класс, определенный с помощью тега шаблона post_class () . Это дает ему класс, который включает идентификатор сообщения, тип сообщения, таксономию и многое другое.

Затем открывается элемент заголовка , который включает заголовок сообщения с использованием тега шаблона the_title () . У него есть параметры для разметки, которая предшествует заголовку сообщения и следует за ним, поэтому он содержится в элементе h2 с классом entry-title .

Затем элемент заголовка закрывается.

Отображение метаданных

Следующим шагом является отображение любых метаданных. В этой теме этого не так много - только эскиз сообщения.Это отображается с помощью функции twentysixteen_post_thumbnail () , которая специфична для этой темы. Если вы хотите узнать, как работает эта функция, загляните в файл темы functions.php - в текущей версии эта функция определена в строке 398.

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

Вывод содержимого сообщения

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

Давайте посмотрим, что это делает.

  1. Во-первых, он открывает div с классом entry-content.
  2. Затем он использует тег шаблона the_content () для извлечения содержимого из базы данных и его отображения.
  3. Он использует тег шаблона wp_link_pages () для отображения ссылок на более ранние и более поздние сообщения для сообщений с разбивкой на страницы.В этой части шаблона это не будет делать ничего, поскольку страницы не разбиты на страницы, но в одном сообщении будет отображаться ссылка на предыдущие и следующие сообщения.
  4. Закрывает entry-content div.

В некоторых файлах шаблона или частях шаблона не будет выводиться содержимое, вместо этого будет выводиться отрывок. Если у вас есть цикл в файле archive.php , вы, вероятно, предпочтете использовать the_excerpt () вместо the_content () для вывода отрывка.

Завершение работы

У темы двадцать шестнадцать есть ссылка, по которой зарегистрированный пользователь с соответствующей ролью может щелкнуть, чтобы отредактировать сообщение:

Здесь используется функция edit_post_link () с несколькими параметрами, которые точно определяют, что будет выводиться.

В некоторых темах вы обнаружите, что здесь выводится больше метаданных.

Наконец, элемент article , который содержит все, закрывается.

Настройка цикла WordPress

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

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

Изменение основного цикла

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

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

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

Допустим, ваш пользовательский тип сообщения зарегистрирован как myposttype . Вот функция, которую вы бы добавили в файл вашей темы functions.php , чтобы добавить их на главную страницу блога:

Это проверяет, что мы находимся на главной странице блога с is_home () , что мы не на экранах администратора с ! Is_admin () и что основной запрос выполняется с $ query-> is_main_query ( ) . Если все это так, то он определяет, какие два типа сообщений выводятся в цикле, используя $ query-> set ('post_type', array ('post', 'myposttype')) .

Написание новой петли

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

Для этого есть три метода:

  • Используйте функцию get_posts () для извлечения и вывода сообщений с вашими собственными параметрами для количества сообщений, терминов таксономии или всего остального, на чем вы хотите сосредоточить внимание.
  • Используйте функцию get_pages () , чтобы сделать то же самое для страниц.
  • Используйте класс WP_Query для получения и вывода абсолютно всего, что вы хотите. Это чрезвычайно гибкий и полезный класс, который вы можете использовать в своей теме где угодно.

Инструкции по использованию каждого из них см. В нашем руководстве по написанию пользовательских запросов.

Понимание цикла WordPress поможет вам создавать лучшие темы WordPress

Надеюсь, теперь вы лучше понимаете цикл WordPress и то, как он работает.

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

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