Иерархия шаблонов в 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.php
2. index.php

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

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

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

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

Страница автора
1. author.php
2. archive.php
3. index.php

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

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

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

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

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

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

Рубрика: Учебник WordPress | 18 марта 2009

Предыдущие записи из рубрики `Учебник WordPress`

Один комментарий

Большой, 03.02.2010 в 19:22

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

ОтветитьОтветить

Комментировать