Понимание иерархии шаблонов WordPress. Иерархия wordpress


Иерархия шаблонов в WordPress

Иерархия шаблонов в WordPressСтраницы сайта на WordPress собираются из файлов-шаблонов Темы подобно пазлу. Некоторые шаблоны (например header.php и footer.php) задействованы на всех страницах, другие используются только при определенных условиях.

О чем эта статья

Эта статья дает ответ на вопрос: Какие шаблоны используются для отображения того или иного типа страниц в WordPress?

Для кого эта статья

Со времен появления Тем в WordPress версии 1.5, шаблоны становятся все более настраиваемы.Перед тем, как создать свою Тему, Вам нужно понять механизм работы шаблонов — почему WordPress использует разные файлы темы для вывода того или иного контента в Вашем блоге. Эта статья призвана разъяснить, когда и как используется тот или иной шаблон.

Общие сведения

WordPress использует строку запроса (запрос контента) (Query String), т.е. информацию, содержащуюся внутри каждой ссылки на вашем веб-сайте для того, чтобы решить какой шаблон или набор шаблонов будет использован для отображения [запрошенной]страницы.

Первым делом WordPress сравнивает каждый запрос контента из базы данных (Query String) с существующими типами контента (query types) — таким образом, WordPress определяет, какой тип контента запрошен (страница поиска, страница категории, главная страница и т.п.).

Затем выбирается нужный шаблон в соответствии с иерархией шаблонов — и страница генерируется. Использование того или иного шаблона зависит от того, присутствует ли нужный шаблон в папке активной Темы.

WordPress ищет файл-шаблон в папке текущей Темы и использует первый подходящий шаблон (в соответствии с приоритетом шаблонов для конкретного типа контента — см. примеры ниже).

За исключением основного шаблона index.php, разработчик Темы может выбрирать: создавать ли отдельный шаблон для определенного типа контента или нет. Если WordPress не может найти Шаблон с определенным именем, то он переходит к следующему Шаблону в соответствии с иерархией. Если WordPress не найдет ни одного Шаблона для данного типа контента, то будет использован основной шаблон index.php.

Примеры

Если Ваш блог находится по адресу http://blog.ru/ и посетитель переходит на страницу категории http://blog.ru/category/your-cat/, WordPress в папке текущей темы в первую очередь ищет шаблон, который отвечает за вывод этой категории. Если ID данной категории 4, WordPress ищет шаблон с именем category-4.php.Если такой шаблон не найден, WordPress ищет общий для всех категорий шаблон category.php.Если и такого файла-шаблона нет, WordPress ищет шаблон для вывода архива archive.php.Если нет и этого файла, WordPress будет использовать основной шаблон Темы index.php.

Если посетитель переходит на главную страницу сайта http://blog.ru/, WordPress ищет шаблон home.php. Если файла home.php в папке Темы нет, WordPress использует файл index.php для вывода главной страницы блога.

Теперь наглядно

На этой картинке показано, какие файлы-шаблоны используются для вывода тех или иных типов страниц.Графический пример структуры иерархии шаблонов WP.

Иерархия шаблонов в WordPress

График также показывает отношение строки запроса (запрос контента) (Query Strings) к соответствующему условному тегу (Conditional Tags).

Подробнее о иерархии шаблонов Темы

Рассмотрим приоритет использования шаблонов при вызове разных типов контента в WordPress.

Главная страница1. home.php2. index.php

Одна запись1. single.php2. index.php

Статичная страница1. Шаблон, выбранный при создании или редактировании статичной страницы в выпадающем списке справа «Шаблон страницы».2. Если слаг (короткая ссылка) Страницы about, то для этой страницы может использоваться шаблон about.php3. page.php4. index.php

Страница категории1. Шаблон конкретной категории. Если ID категории 6, то шаблон для этой категории будет называться category-6.php2. category.php3. archive.php4. index.php

Страница тега (метки)1. В первую очередь шаблон для вывода постов с определенной меткой ищется по его слагу («короткая ссылка»). Если слаг метки privet, WordPress сначала ищет шаблон tag-privet.php2. tag.php3. archive.php4. index.php

Страница автора1. author.php2. archive.php3. index.php

Страница даты (архив)1. date.php2. archive.php3. index.php

Страница результатов поиска1. search.php2. index.php

Страница 404 (ничего не найдено)1. 404.php2. index.php

АттачментыШаблоны для аттачментов (прикрепленных файлов) (картинки, видео и т.д., открываемые на отдельной странице)

1. image.php, video.php, audio.php, application.php и другие первые слова из названия MIME типов.2. attachment.php3. index.php

Перевод статьи Кодекса WordPress: Template Hierarchy. За перевод огромное спасибо Sonike.

www.wp-info.ru

Файлы шаблона WordPress

Блог  /  WordPress  /  Файлы темы в WordPress. Их иерархия и порядок подключения.

Редактировали какие-нибудь готовые темы для WordPress? Наверное заметили, что в каждой своя структура файлов.

Например в одной из них за вывод рубрик отвечает category.php, а в другой это archive.php, в третьей вообще отсутствуют оба. Почему так?

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

Этот пост должен раз и навсегда ответить на вопрос — какой из PHP-файлов темы используется для отображения той или иной страницы сайта?

Условные теги WordPress 

Условные теги — это функции, которые позволяют определить что-либо и дать однозначный ответ (логическое true или false). «Условные» потому что практически всегда используются внутри условия if.

К примеру, функция is_single() позволяет определить, находимся ли мы, просматривая сайт в данный момент, на странице поста.

Полный список условных тегов WordPress и их документацию вы найдёте здесь.

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

Схема порядка подключения файлов шаблона 

Кликните по картинке, чтобы открыть в полном размере.

Иерархия порядок подключения файлов темы WordPress

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

А теперь разберемся, что означает каждая переменная (на графике — со знаком $).

$id Ну насчет ID понятно. Немного дополнительной информации вы найдете в этих статьях: $slug Наряду с названием и айдишником, каждый объект в WordPress, будь то посты, комментарии или таксономии (искл. пользователи) имеет ярлык (или слаг). Так же, как и название объекта, ярлык задается в админке самим пользователем. $nicename Это ник автора, и под ником подразумевается user_nicename — на моём опыте всегда совпадало с user_login (именем пользователя). $taxonomy Название таксономии $term Ярлык элемента таксономии $posttype Название типа поста, для которого используем данный шаблон. $mimetype, $subtype Как вы возможно уже поняли из схемы, это актуально для страницы вложений.

Предположим, что во вложении у нас картинка PNG, то есть image/png — для данного примера переменные принимают значения image = $mimetype, png = $subtype, image-png = $mimetype-$subtype, по приоритету — в перечисленном порядке, как на схеме.

$custom Название файла шаблона страниц — про них всё подробно расписано здесь.

Примеры 

Сразу же приведу пример для страницы с рубрикой с ID = 54 и ярлыком myphotos:

  1. category-myphotos.php в первую очередь WordPress ищет этот файл в папке с темой, если его не существует, то файл со следующего пункта списка,
  2. category-54.php если и этого файла нет в директории темы, то переходим к следующему пункту и так далее,
  3. category.php,
  4. archive.php,
  5. index.php;

Следующий момент, который может быть не до конца понятен, отображён на этой части схемы:

Использование шаблонов страниц в иерархии WordPress

Для страниц добавлен блок с условием «Используется ли шаблон страницы», а для записей и других типов постов — нет. На самом деле начиная с версии WordPress 4.7 можно использовать шаблоны страниц и для записей других типов, на этой схеме это тоже показано — custom.php это и есть произвольный шаблон, просто для страниц и других типов постов эта часть схемы немного отличается, хотя суть одна и та же.

Какой файл PHP используется для отображения главной страницы? 

В чем отличие между index.php, home.php и front-page.php? 

Уверен, что этот вопрос терзает многих, как когда-то терзал меня, особенно, если вы начали своё обучение WordPress не с теории, а с практики (я имею ввиду разбор и доработка уже готовых тем). Дело в том, что в таких темах может присутствовать либо home.php, либо front-page.php, либо вообще ни того и ни другого файла, index.php же присутствует всегда.

Разберем сам порядок. Сначала на схеме:

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

Комментирую — итак, когда мы находимся на главной странице, в первую очередь WordPress пытается подключить файл front-page.php, если же файла не существует, вторым шагом он проверяет, что указано в настройках Настройки > Чтение, короче говоря:

Но файл front-page.php в любом случае остаётся в приоритете!

B традиционно теперь, видео

misha.blog

Иерархия шаблонов в WordPress

иерархия шаблонов в wordpress template suggestions

Шаблоны в рамках темы WordPress, как и во многих других CMS, имеют строго определенную иерархию. Что это означает на практике?

Когда WP требуется определить какой шаблон (файл из папки темы) использовать, движок, в зависимости от типа страницы, проверяет наличие определенных файлов. Если существует несколько файлов, подходящих на роль шаблона текущей страницы, тогда выбирается наиболее «кастомный», подходящий для самого редкого случая.

Можно говорить о как минимум трех уровнях иерархии.

Базовый шаблон в иерархии WordPress

index.php

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

Уровень структурных единиц

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

Для каждого случая WordPress проверяет свой шаблон:

Уровень с параметризацией

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

Наиболее развита иерархия у архивов.

Авторские архивы

Могут собственный шаблон (author.php), в том числе и персонально для каждого автора (author-{$id}.php или author-{$nicename}.php).

Архивы таксономии (категории, теги и пр.)

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

Архив рубрик (категорий) — category.php, category-{$id}.php, category-{$slug}.php.

Архив меток (тегов) — tag.php, tag-{$id}.php, tag-{$slug}.php.

Архив таксономии — taxonomy.php, taxonomy-{$taxonomy}.php (имя словаря), tag-{$taxonomy}-{$term}.php (имя словаря и slug термина).

Календарные архивы

Архивы за год, месяц, день будет выводится в шаблоне date.php. Возможно ли деление по конкретным годам, месяцам и т.п. — я не проверял. :)

Конечные публикации и вложения

Вордпресс поддерживает страницы вложений. Вообще каждая картинка, файл, загруженные в «Медиафайлы», имеет свою страницу на сайте. Чтобы страница вложений отличалась от публикаций (single.php), используйте шаблон attachment.php. Для каждого типа вложения можно определить отдельный шаблон — {$mimetype}.php.

Если внешний вид разных типов публикаций отличается, можно создать шаблоны single-{$posttype}.php.

Страницы

После page.php в иерархии WordPress идет шаблон page-{$id}.php или page-{$slug}.php. Для каждой страницы в редакторе можно задать собственный шаблон. Нужно лишь дать шаблону имя, чтобы WP его «подхватил» и показал в списке.

Прочие шаблоны

Мы рассмотрели только часть шаблонов, которые используются только для оформления страниц сайта. Но WP распознает еще и шаблоны для особых элементов — блока комментариев (comments.php), сайдбаров (sidebar.php, sidebar-{$id}.php) и т.п.

Для них работают схожие принципы template suggestions.

Данная запись опубликована в 23.03.2017 15:26 и размещена в wordpress. Вы можете перейти в конец страницы и оставить ваш комментарий.

shra.ru

Что такое иерархия шаблонов WordPress.

Когда вы столкнетесь с темой разработки или правки тем WordPress, одно из первых определений, с которыми вам предстоит обязательно разобраться — это «иерархия шаблонов WordPress«.

Без понимания работы этого определения, двигаться дальше не имеет особого смысла.

Что это такое и зачем это нужно?

Исходя из самого определения, иерархия — это какая-то разветвляющаяся структура, в которой определяется что главное, а что второстепенное.

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

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

Эти правила определяют какой HTML-код в итоге увидит пользователь, который выполнил тот или иной запрос к сайту на WordPress.

Где можно посмотреть всю эту логику WordPress?

Лучше всего смотреть за этой логикой на официальном сайте документации WordPress. Там публикуется самая актуальная версия иерархии шаблонов WordPress.

Вот ссылка, где это можно посмотреть:

https://developer.wordpress.org/themes/basics/template-hierarchy/

Более интерактивную карту можно найти здесь:

https://wphierarchy.com/

Кликните по изображению, чтобы увеличить его.

Что можно узнать по этой иерархии?

В левой части этой «карты» расположены типы контента или содержимого (выделены серым), которые есть в системе WordPress (записи, страницы, архивы, …)

В правой части располагаются конкретные файлы шаблонов (выделены темно синим цветом), которые могут отвечать за вывод того или иного содержимого WordPress. Например, (index.php, page.php, 404.php и др.). Это конкретные php-файлы, которые находятся внутри вашей темы.

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

Как читать эту карту?

Карта иерархии шаблонов WordPress читается слева направо.

Давайте, для примера, возьмем самый простой случай — отображение страницы 404 (страница не найдена).

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

Тема WordPress начинает проверяться, и если внутри активной темы будет найден файл 404.php, то этот файл будет считаться самым главным и выведен пользователю. Если же такого файла не будет обнаружено, WordPress воспользуется шаблоном, который располагается правее, в данном случае это файл index.php.

Общий смысл — что располагается левее, то и главнее.

Зачем вообще нужна вся эта иерархия файлов WordPress?

Действительно, вполне резонный вопрос. Зачем все усложнять?

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

Благодаря этому код значительно упрощается и позволяет избежать множества конструкций «Если — То — Иначе».

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

Заключение

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

webgyry.info

Иерархия WordPress | Кузнецов А. И.

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

Первое, что нужно уяснить: без файлов index.php и style.css ваше тема не является правильной темой для WordPress. Если все, что у вас есть — данные два файла, то WordPress будет пытаться загрузить и обработать все ситуации с помощью index.php.

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

Теперь посмотрим на порядок выполнения. Опишем направление, в котором WordPress выполняет поиск файлов в папке активной темы. Данная информация очень полезная при создании темы WordPress.

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

Главная страницаДанная страница является первой и самой важной страницей любого веб сайта. WordPress имеет средства для настройки страницы. Вот что представляет собой иерархия главной страницы.

frontpage.phphome.phpindex.php

При выводе главной страницы WordPress ищет файл frontpage.php. Если его нет, будет использоваться файл home.php. Если и home.php отсутствует в папке, то используется index.php.

Записьsingle-[тип_записи].phpsingle.phpindex.php

WordPress может иметь столько типов записей, сколько нужно. И очень просто сделать разные дизайны для каждого типа записей. Например, если у вас есть тип записи produc, то можно использовать для него файл single-product.php.

Страница[пользовательский_шаблон].phppage-[сокращение].phppage-[id].phppage.phpindex.php

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

Категорииcategory-[сокращение].phpcategory-[id].phpcategory.phparchive.phpindex.php

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

Меткаtag-[сокрашение].phptag-[id].phptag.phparchive.phpindex.php

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

Таксономияtaxonomy-[tax]-[термин].phptaxonomy-[tax].phptaxonomy.phparchive.phpindex.php

Иерархия файлов для таксономии.

Страница автораauthor-[псевдоним_автора].phpauthor-[id_автора].phpauthor.phparchive.phpindex.php

Для разных пользователей можно построить разные дизайны.

Приложения[тип_приложения].phpattachment.phpsingle.phpindex.php

Данная иерархия файлов позволяет использовать для разных приложений разные страницы на сайте.

Страница датыdate.phparchive.phpindex.php

Для шаблона даты можно использовать файл date.php.

Архивarchive.phpindex.php

Поискsearch.phpindex.php

Страница 404404.phpindex.php

Автор публикации

8 Комментарии: 6Публикации: 54Регистрация: 23-01-2016

pfilan.ru

Иерархия шаблонов темы WordPress | Создание сайта на WordPress

В этой статье:

Схема

Например, archive-$posttype.php == category.php (также см. ниже рисунка)

Home Page display - главная страница

home.php или index.php

Front Page display

front-page.php - Used for both Your latest posts or A static page as set in the Front page displays section of Settings -> ReadingPage display rules - When Front page is set in the Front page displays section of Settings -> ReadingHome Page display rules - When Posts page is set in the Front page displays section of Settings -> Reading

Single Post display

single-{post_type}.php - If the post type were product, WordPress would look for single-product.php.single.phpindex.php

Page display

custom template file - The Page Template assigned to the Page. See get_page_templates().page-{slug}.php - If the page slug is recent-news, WordPress will look to use page-recent-news.phppage-{id}.php - If the page ID is 6, WordPress will look to use page-6.phppage.phpindex.php

Category display

category-{slug}.php - If the category's slug were news, WordPress would look for category-news.phpcategory-{id}.php - If the category's ID were 6, WordPress would look for category-6.phpcategory.phparchive.phpindex.php

Tag display

tag-{slug}.php - If the tag's slug were sometag, WordPress would look for tag-sometag.phptag-{id}.php - If the tag's ID were 6, WordPress would look for tag-6.phptag.phparchive.phpindex.php

Custom Taxonomies display

taxonomy-{taxonomy}-{slug}.php - If the taxonomy were sometax, and taxonomy's slug were someterm WordPress would look for taxonomy-sometax-someterm.php. In the case of Post Formats, the taxonomy is 'post_format' and the terms are 'post-format-{format}. i.e. taxonomy-post_format-post-format-link.phptaxonomy-{taxonomy}.php - If the taxonomy were sometax, WordPress would look for taxonomy-sometax.phptaxonomy.phparchive.phpindex.php

Custom Post Types display

archive-{post_type}.php - If the post type were product, WordPress would look for archive-product.php.archive.phpindex.php(when displaying a single custom post type see the Single Post display section above.)

Author display

author-{nicename}.php - If the author's nice name were rami, WordPress would look for author-rami.php.author-{id}.php - If the author's ID were 6, WordPress would look for author-6.php.author.phparchive.phpindex.php

Search Result display

search.phpindex.php

404 (Not Found) display

404.phpindex.php

Attachment display

MIME_type.php - it can be any MIME type (image.php, video.php, application.php). For text/plain, in order:text.phpplain.phptext_plain.phpattachment.phpsingle-attachment.phpsingle.phpindex.php

...

Источник

Дополнительно: в разделе "Тема WordPress и ее составляющие" также:

mblogm.ru

Понимание иерархии шаблонов WordPress Wordpress Ask

Здесь немного предисловия. Я предполагаю, что вы ничего не знаете о типах сообщений или шаблонах, так как я незнаком с Underscores или треком разработки Teamtreehouse. Надеюсь, что нижеследующее поможет разобраться, если не спросить в комментариях.

WordPress начинается с нескольких встроенных типов сообщений , с которыми вы уже знакомы:

Они используют свои собственные шаблоны , обычно они идут следующим образом:

Вы можете использовать приведенное выше с обычными циклами для отображения вашего контента, вам необязательно использовать такие вещи, как get_template_part() который на самом деле является только версией WordPress PHP include() .

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

Вы бы отключили {post-type-slug} в вышеуказанных шаблонах с помощью пула типа post, так что в конце вы бы получили:

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

1) Вы можете создать для него фактическую страницу, назовите ее page-portfolio.php но тогда вам нужно будет запустить отдельный WP_Query() чтобы вытащить ваши сообщения в портфолио, потому что WordPress не будет знать, чтобы связать этот тип публикации page с вашим portfolio почтовый тип. Такая же проблема с глобальным шаблоном страницы, но вам не нужно отслеживать идентификаторы или слизни.

2) Вы можете разрешить пользователю назначать страницу для вашего типа сообщения. Аналогично доступу к панели администратора « Settings -> Reading и присвоение страницы «Первая страница» и «Блог». Вы можете сохранить идентификатор страницы в базе данных, а в вашем archive-{post-type}.php получить содержимое этой страницы для его отображения.

Я уверен, что есть другие способы, у каждого свой предпочтительный метод.

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

wordpressask.com


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

Prostoy-Site | Все права защищены © 2018 | Карта сайта