Файлы шаблонов представляют собой смесь из HTML и PHP, которая может содержать как ваш собственный код, так и вызывать базовую функциональность WordPress. При разработке темы одна из основных задач заключается в том, чтобы исследовать шаблоны родительской темы и отыскать те места, в которых сгенерирована необходимая вам разметка. Для того чтобы быстро и эффективно выполнить данную задачу, нужно обладать некоторыми знаниями относительно того, как работают шаблоны WordPress. Изучением их работы мы и займемся в этом разделе.
В процессе представления страницы, WordPress проверяет наличие соответствующего шаблона в каталоге с активной темой. Каким образом WordPress выбирает необходимый шаблон? Это зависит от типа страницы, а также от количества доступных шаблонов для ее представления. Сначала WordPress выполняет проверку присутствия определенных шаблонов с определенными именами, и если таких не было найдено, то откатывается к файлу index.php, который является своего рода универсальным шаблоном для отображения любой страницы.
Краткая иерархия шаблонов
Главная страница
В WordPress 3.0 администратор блога может определить, что показывать на главной странице: динамический список записей или статическую страницу. Шаблоны WordPress для главной страницы имеют следующую иерархию:
1. front-page.php
2. page.php или home.php (зависит от того, что вы выбрали в настройках блога)
3. index.php
В WordPress 2.x иерархия была следующей:
1. home.php
2. index.php
Отдельные записи
1. single-posttype.php, где posttype задает определенный тип записи. К примеру, если ваша запись имеет название Recipes, то шаблон получил бы название single-recipes.php.
2. single.php
3. index.php
Отдельные страницы
1. WordPress сначала ищет шаблон, определенный в настройках шаблонов страниц.
2. page-slug.php, где slug — это определяющая строка для данной страницы. К примеру, если у вас есть страница, названная About, то WordPress будет искать для нее шаблон page-about.php.
3. page-id.php, где ID — идентификатор данной страницы. Если страница About имеет ID = 2, то WordPress будет искать для нее шаблон page-2.php.
4. page.php
5. index.php
Вложения
1. MIMEtype.php, где MIMEtype определяет тип вложения — к примеру, audio.php, image.php, text.php или video.php.
2. attachment.php
3. index.php
Архивы рубрик
1. category-slug.php, где slug — определяющая строка рубрики.
2. category-id.php, где id — цифровой ID рубрики.
3. category.php
4. archive.php
5. index.php
Архивы меток
1. tag-slug.php.
2. tag-id.php.
3. tag.php
4. archive.php
5. index.php
Архивы таксономий
Произвольные таксономии появились в WordPress 3.
1. taxonomy-taxonomyname-term.php, где taxonomyname является определяющей строкой для произвольной таксономии, а term является термом для данной таксономии. Если ваша таксономия была названа Cheeses и ваш терм был Brie, то WordPress при выводе пунктов для данного терма будет искать шаблон taxonomy-cheese-brie.php.
2. taxonomy-taxonomyname.php, аналогично первому пункту, только без терма.
3. taxonomy.php
4. archive.php
5. index.php
Архивы автора
1. author-nicename.php, где nicename — это имя автора, преобразованное в нижний регистр с удаленными пробелами (вместо них ставятся тире).
2. author-id.php, где id — это идентификатор автора.
3. author.php
4. archive.php
5. index.php
Архивы по дате
1. date.php
2. archive.php
3. index.php
Страницы поиска
1. search.php
2. index.php
Страницы 404
1. 404.php
2. index.php
Иерархия шаблонов и дочерние темы
Когда вы используете дочернюю тему, иерархия шаблонов несколько усложняется. WordPress будет искать наиболее подходящий шаблон сначала в дочерней теме, а затем уже в родительской, в строгом соответствии с иерархией. То есть, к примеру, для архивов по дате, сначала WordPress будет искать шаблон date.php в дочерней теме, а затем, в случае его отсутствия, перейдет к поиску данного шаблона в родительской теме. Если же указанный шаблон не был найден, то WordPress перейдет к поиску следующего пункта в иерархии, archive.php. Поиск начнется снова от дочерней темы, и в случае отсутствия шаблона перейдет к родительской. И так далее, до файла index.php.
Шаблоны Thematic
Как мы узнали в предыдущей главе, Thematic является превосходным фреймворком благодаря наличию в нем интересной, мощной функциональности. Для того чтобы лучше понять, как использовать шаблоны данного фреймворка, необходимо потратить некоторое время на изучение их взаимосвязи.
Углубимся снова в папку Thematic. Вы увидите множество различных файлов шаблона, которые, если вы прочли предыдущий раздел, не станут для вас откровенностью:
404.php
archive.php
archives.php
attachment.php
author.php
category.php
comments.php
footer.php
functions.php
header.php
index.php
links.php
page.php
search.php
searchform.php
sidebar-index-bottom.php
sidebar-index-insert.php
sidebar-index-top.php
sidebar-page-bottom.php
sidebar-page-top.php
sidebar-single-bottom.php
sidebar-single-insert.php
sidebar-single-top.php
sidebar-subsidiary.php
sidebar.php
single.php
tag.php
Помимо этого, в папке с Thematic находится интригующий каталог library, в котором содержатся различные стили, языковые файлы, скрипты и т.д. Наиболее интересным подкаталогом данного каталога является extensions — в нем содержатся различные расширения для Thematic. Вот список файлов, расположенных в папке extensions:
comments-extensions.php
content-extensions.php
discussion.php
dynamic-classes.php
footer-extensions.php
header-extensions.php
helpers.php
shortcodes.php
sidebar-extensions.php
theme-options.php
widgets-extensions.php
widgets.php
Название каждого из этих файлов содержит в себе ключ к разгадке того, что они выполняют. Sidebar-extensions.php, очевидно, совершает какие-то действия с сайдбаром, widgets-extensions.php — с виджетами и т.д.