Перевод статьи Кодекса WordPress: Template Hierarchy. Перевод почти дословный, я старалась не отклоняться от оригинала:
Перед тем, как создать свою Тему, Вам нужно понять механизм работы Шаблонов — почему WordPress использует разные файлы Темы для вывода того или иного контента в Вашем блоге. Эта статья призвана разъяснить, когда и как используется тот или иной Шаблон.
Первым делом WordPress сравнивает каждый запрос контента из базы данных (Query String) с существующими типами контента (query types) — таким образом, WordPress определяет, какой тип контента запрошен (страница поиска, страница категории, главная страница и т.п.).
Затем выбирается нужный шаблон в соответствии с иерархией шаблонов — и страница генерируется. Использование того или иного шаблона зависит от того, присутствует ли нужный шаблон в папке активной Темы.
WordPress ищет файл-шаблон в папке текущей Темы и использует первый подходящий шаблон (в соответствии с приоритетом шаблонов для конкретного типа контента — см. примеры ниже).
За исключением основного шаблона index.php, разработчик Темы может выбрирать: создавать ли отдельный шаблон для определенного типа контента или нет. Если WordPress не может найти Шаблон с определенным именем, то он переходит к следующему Шаблону в соответствии с иерархией. Если WordPress не найдет ни одного Шаблона для данного типа контента, то будет использован основной шаблон index.php.
и посетитель переходит на страницу категории http://domain.com/wp/category/your-cat/,
WordPress в папке текущей Темы в первую очередь ищет шаблон, который отвечает за вывод этой категории. Если ID данной категории 4, WordPress ищет шаблон с именем category-4.php.
Если такой шаблон не найден, WordPress ищет общий для всех категорий шаблон category.php.
Если и такого файла-шаблона нет, WordPress ищет шаблон для вывода архива archive.php.
Если нет и этого файла, WordPress будет использовать основной шаблон Темы index.php.
Если посетитель переходит на главную страницу сайта http://domain.com/wp/, WordPress ищет шаблон home.php. Если файла home.php в папке Темы нет, WordPress использует файл index.php для вывода главной страницы блога.
График также показывает отношение строки запроса (запрос контента) (Query Strings) к соответствующему условному тегу ( Conditional Tags).
Графический пример структуры иерархии шаблонов WP
Новая схема!!!
На заметку: Это статья — приложение к статье Устройство шаблонов (Stepping Into Templates).
Введение
Страницы сайта на WordPress собираются из файлов-шаблонов Темы подобно пазлу. Некоторые Шаблоны (например header.php и footer.php) задействованы на всех страницах, другие используются только при определенных условиях.О чем эта статья
Эта статья дает ответ на вопрос:Какие шаблоны используются для отображения того или иного типа страниц в WordPress?
Для кого эта статья
Со времен появления Тем в Wordpress версии 1.5, Шаблоны становятся все более настраиваемы.Перед тем, как создать свою Тему, Вам нужно понять механизм работы Шаблонов — почему WordPress использует разные файлы Темы для вывода того или иного контента в Вашем блоге. Эта статья призвана разъяснить, когда и как используется тот или иной Шаблон.
Условные теги (Conditional Tags) и иерархия ШаблоновWordPress может несколькими способами подбирать Шаблоны в соответствии с типом контента (query types). Разработчики Тем для WordPress могут также использовать «условные теги» (Conditional Tags) для того, чтобы определенный Шаблон был использован на конкретной странице блога.Некоторые Темы могут не содержать всех файлов-шаблонов, описанных в этой статье. В некоторых Темах использованы условные теги (conditional tags) для вызова других (собственных) шаблонов. Посмотрите здесь: Создание Тем и условные теги (Conditional Tags). |
Иерархия шаблонов Темы
Общие сведения
WordPress использует строку запроса (запрос контента) (Query String), т.е. информацию, содержащуюся внутри каждой ссылки на вашем веб-сайте для того, чтобы решить какой шаблон или набор шаблонов будет использован для отображения [запрошенной]страницы.Первым делом WordPress сравнивает каждый запрос контента из базы данных (Query String) с существующими типами контента (query types) — таким образом, WordPress определяет, какой тип контента запрошен (страница поиска, страница категории, главная страница и т.п.).
Затем выбирается нужный шаблон в соответствии с иерархией шаблонов — и страница генерируется. Использование того или иного шаблона зависит от того, присутствует ли нужный шаблон в папке активной Темы.
WordPress ищет файл-шаблон в папке текущей Темы и использует первый подходящий шаблон (в соответствии с приоритетом шаблонов для конкретного типа контента — см. примеры ниже).
За исключением основного шаблона index.php, разработчик Темы может выбрирать: создавать ли отдельный шаблон для определенного типа контента или нет. Если WordPress не может найти Шаблон с определенным именем, то он переходит к следующему Шаблону в соответствии с иерархией. Если WordPress не найдет ни одного Шаблона для данного типа контента, то будет использован основной шаблон index.php.
Примеры
Если Ваш блог находится по адресу http://domain.com/wp/и посетитель переходит на страницу категории http://domain.com/wp/category/your-cat/,
WordPress в папке текущей Темы в первую очередь ищет шаблон, который отвечает за вывод этой категории. Если ID данной категории 4, WordPress ищет шаблон с именем category-4.php.
Если такой шаблон не найден, WordPress ищет общий для всех категорий шаблон category.php.
Если и такого файла-шаблона нет, WordPress ищет шаблон для вывода архива archive.php.
Если нет и этого файла, WordPress будет использовать основной шаблон Темы index.php.
Если посетитель переходит на главную страницу сайта http://domain.com/wp/, WordPress ищет шаблон home.php. Если файла home.php в папке Темы нет, WordPress использует файл index.php для вывода главной страницы блога.
Теперь наглядно
На этой картинке показано, какие файлы-шаблоны используются для вывода тех или иных типов страниц.График также показывает отношение строки запроса (запрос контента) (Query Strings) к соответствующему условному тегу ( Conditional Tags).
Графический пример структуры иерархии шаблонов WP
Новая схема!!!
Подробнее о иерархии шаблонов Темы
Рассмотрим приоритет использования шаблонов при вызове разных типов контента в WordPress.Главная страница
- home.php
- index.php
Одна запись
- single.php
- index.php
Статичная страница
- Шаблон, выбранный при создании или редактировании статичной страницы в выпадающем списке справа «Шаблон страницы».
Подробнее про шаблоны Статичных страниц. - если слаг (короткая ссылка) Страницы about, то для этой страницы может использоваться шаблон about.php
- page.php
- index.php
- Шаблон, выбранный при создании или редактировании статичной страницы в выпадающем списке справа «Шаблон страницы».
На заметку: Это относится только к Статичным страницам, НЕ к страницам с постами. Подробнее: Статичные страницы.
Страница категории
- Шаблон конкретной категории. Если ID категории 6, то шаблон для этой категории будет называться category-6.php
- category.php
- archive.php
- index.php
На заметку: Подробнее про шаблоны для категорий.
Страница тега (метки)
- В первую очередь шаблон для вывода постов с определенной меткой ищется по его слагу («короткая ссылка»). Если слаг метки privet, WordPress сначала ищет шаблон tag-privet.php
- tag.php
- archive.php
- index.php
На заметку: Смотрите страницу шаблоны для вывода постов с метками (тегами).
Страница автора
- author.php
- archive.php
- index.php
На заметку: Шаблон для страницы автора предназначен для вывода информации об авторе.
Страница даты
К примеру, архив за месяц.- date.php
- archive.php
- index.php
Страница результатов поиска
- search.php
- index.php
На заметку: Как сделать страницу поиска.
Страница 404 (ничего не найдено)
- 404.php
- index.php
На заметку: Как сделать страницу ошибки 404.
Аттачменты
Шаблоны для аттачментов (прикрепленных файлов) (картинки, видео и т.д., открываемые на отдельной странице)- image.php, video.php, audio.php, application.php и другие первые слова из названия MIME типов.
- attachment.php
- index.php
WordPress uses the Query String
— information contained within each link on your web site — to
decide which template or set of templates will be used to display the page.
WordPress использует строку запроса (запрос контента) — [т.е.]
информацию, содержащуюся внутри каждой ссылки на вашем
веб-сайте — для того, чтобы решить какой шаблон или набор
шабюлонов будет использован для отображения [запрошенной]
страницы.
=====
It also illustrates the relationship of Query Strings to
corresponding Conditional Tags.
Graphic Example of the WordPress Template Hierarchy Structure
Он [график]также показывает отношение строки запроса (запрос
контента) к соответствующему условному тегу (комментарию).
Графический пример структуры шерархии шаблонов WP
С уважением.
Щас как раз читаю кодекс но с енг плохо
смотрите код своих файлов в папке Темы, ключевые слова:
get_sidebar();
. Например в Теме default вызова сайдбара нет в файле single.php, поэтому при просмотре одной записи сайдбар и не отображается.у меня вопрос не совсем по теме, но очень важный для меня.
Помогите, пожалуйста, разобраться: как вывести на странице “Контакты” в wordpresse форму для связи так, чтобы она отражалась только на этой странице, а на других страницах ее не было?
Буду очень благодарна за помощь.
Людмила
Нашёл решение своей проблемы!
И оставил комментарий с благодарностью!
Дак почему твою мать на форуме по адресу forum.maxsite.org/viewtopic.php?id=4166
Я вижу свой сайт в списке Спамеров?!!!
есть что сказать, моя ICQ 393738069
Плагин use_parent_category_template позволяет использовать шаблон рубрики category-N.php для всех ее подрубрик. Модификация плагина use_parent_category_template_plus позво...
Я ждал ответа от Вас Sonika именно по этому аспекту.
Надеюсь и жду Вашей помощи!
wp_list_pages
не имеет прямого отношения к иерархии шаблонов.Мне надо убрать простыню с сайдбара и разбить страницы по разделам.
Ссылку «Версия для печати» — в студию!
Не совсем понял каким образов встроить PageNavi...
Вот схематически если изобразить :)
//первый пост //второй и последующие посты, лупа
Я недавно заинтересовалась WP и конечно возникает много вопросов. Роюсь в инете,пытаясь найти на них ответы. Но вот один вопрос никак не могу решить, может быть вы поможете? Касается она редактора тем. Там есть такая запись: «Чтобы сохранить изменения, нужно сделать этот файл доступным для записи. Дополнительную информацию можно получить в Кодексе.» Пошла в кодекс, перевела ( как смогла), но не смогла понять, как все ж таки сделать файлы доступными для записи. Буду благодарна, если разъясните.
Спасибо!
Удачи и процветания вашему проекту!
Спасибо,
вам удачи и успехов!
а как только возвращаю показ последних постов(то что по умолчанию) home.php работает как надо
UPD: поняла. Если вы работаете с home.php, то не стоит в админке указывать какую страницу показывать на главной. Проще говоря, home.php для «кастомной» главной страницы, а настройки из админ. панели — это для тех, кто сам не может что-то изменить в своих php шаблонах.
выход 1 — менять ид в шаблоне.
выход 2 — менять местами контент.
к телескопу добавлю что шуруп забитый молотком держит лучше, чем гвоздь вкрученный отверткой!
> Шаблон, выбранный при создании или редактировании статичной страницы в выпадающем списке справа «Шаблон страницы».
В моём списке только «шаблон по умолчанию»
> если слаг (короткая ссылка) Страницы about, то для этой страницы может использоваться шаблон about.php
И это не работает, сразу переходит к page.php. В чём может быть дело?
для работы с личными шаблонами страниц
первой строкой шаблона должна быть следующая:
где template_name — слуг и имя файла шаблона
кодекс. pages.
вот оно.
Раздел \"Creating Your Own Page Templates\"
codex.wordpress.org/Pages
<!--nextpage-->
(в режиме КОД в виз. редакторе) и пост будет делиться на страницы, в шаблоне для одиночного поста должен быть также wp_link_pagesА во-вторых, вопрос:
А что с иерархией шаблонов в WP 2.7.1?
уменя почему-то не работают ни именованные шаблоны страниц, ни слаги...
кароче можно одним файликом обойтись: index.php и файлом стилей, если очень надо))))
Вот не знал что так ещё можно делать, пойду пробовать.
blog.portal.kharkov.ua/2008/07/19/use_parent_category_template/
Не первый год уже верстаю под вордпресс, теперь наконец-то разобрался, как он корректно выводит иерархию шаблонов))
Ваш шаблон category-5.php — для просмотра ЛЕНТЫ постов, т.е. не ОДНОЙ записи, а многих.
ОДНА запись выводится по шаблону файла single.php.
Как сделать разными? Наверное, делать дополнительную проверку на ИД категории в single.php.
Есть cat-1, со своим шаблоном, есть дочернии cat-2, cat-3, как сделать чтобы cat-2 и cat-3 выводились в шаблон cat-1
Заранее благодарен.
Спасибо за ваши усилия.
Вас, должно быть, уже утомили вопросы вокруг home и index, но я таки дерзну и докину ещё один ) Ситуация: нужен отдельный шаблон для первой страницы многостраничного листинга записей. Использую home.php, ставлю wp-paginate, рассчитываю, что со второй страницы (и так далее) в игру вступит index.php, но на деле остаюсь в шаблоне главной. Проверка is_home внутри home.php, конечно, всегда положительна.
Правильнее ли для такой задачи всё размещать внутри index.php или как-то ещё? Спасибо!
читать тут
http://blog.portal.kharkov.ua/2008/07/19/use_parent_category_template/
Нужна сложная тема-конструктор.
Если заинтересуетесь — пишите.