В этой статье будет показана иерархия выполнения файлов тем. Проще говоря, мы увидим, какие файлы обрабатываются при загрузке страницы WordPress. Вы уже можете знать, что полный пост обслуживается файлом single.php, а полная страница – файлом page.php, но WordPress ищет разные файлы в зависимости от множества факторов, так что мы посмотрим, как это работает!
Первое, что нам нужно обозначить, это следующее: без index.php и style.css ваша тема - уже не рабочая тема WordPress… так что если все, что у вас есть – это эти два файла, то каждая страница, которую вы попытаетесь загрузить, будет обслуживаться файлом index.php. Посмотрите на эту схему, чтобы увидеть, на что я ссылаюсь:
Обратите внимание, что поток для каждой страницы заканчивается на index.php. В этом причина того, что файл index.php обязателен для темы WordPress. Если у вас в теме WordPress нет какого-либо другого файла (например, если у вас в теме нет файла search.php), будет вызываться index.php.
Теперь посмотрим подробнее на порядок выполнения. Я покажу очередность, в которой WordPress будет искать файлы в папке вашей текущей темы. Надеюсь, это будет полезным, когда вы создаете тему WordPress.
Я пройдусь по каждому типу файлов по очереди и покажу иерархию выполнения.
Главная страница
Это первая и самая важная страница любого сайта. Так что WordPress обеспечил возможность ее настроить. Посмотрим на иерархию файлов для главной страницы.
- front-page.php
↓- home.php
↓- index.php
Создавая главную страницу, WordPress будет искать front-page.php. Если этот файл не будет найден, WordPress будет искать home.php. Если home.php существует, будет использоваться он. Если нет, WordPress просто будет использовать файл по-умолчанию — index.php.
Запись WordPress
- single-[тип поста].php
↓- single.php
↓- index.php
У WordPress может быть столько типов постов, сколько нам нужно. Так что будет проще сделать другой дизайн для всех или некоторых типов постов. По умолчанию "post" - это стандартный и главный тип поста WordPress.
Так что, например, если ваш пользовательский тип поста – product, то он будет single-product.php
Чтобы узнать больше о том, как добавлять новые типы постов в WordPress, почитайте описание в Codex.
Страница WordPress
- [название шаблона].php
↓- page-[slug].php
↓- page-[id].php
↓- page.php
↓- index.php
Так же, как и с типами постов, мы можем сделать разные разметки страниц, используя пользовательские шаблоны страниц. Так что WordPress сначала ищет файлы выбранного шаблона страницы (если он существует).
Если они не найдены, WordPress будет искать файл, в котором указан короткий заголовок текущей страницы, который используется в качестве ссылки (так называемый slug). То есть, если этот заголовок aboutus, то он будет искать файл с названием page-aboutus.php в текущей теме поста. Точно так же WordPress будет искать файлы с ID, если не найдет предыдущие.
Страница Рубрики
- category-[slug].php
↓- category-[id].php
↓- category.php
↓- archive.php
↓- index.php
По приведенной выше очереди вы можете понять, как вы можете использовать разные шаблоны для страницы рубрик. Например, у вас может быть свой вариант страницы, который будет определяться по slug и id, а для остальных категорий будет использоваться файл по умолчанию "category.php"
Страница Метки
- tag-[slug].php
↓- tag-[id].php
↓- tag.php
↓- archive.php
↓- index.php
Здесь будет тот же вариант, что и для рубрик. У вас так же могут быть разные страницы меток с разными slug или tag id.
Страница таксономии
Для страниц таксономии немного другая иерархия:
- taxonomy-[tax]-[term].php
↓- taxonomy-[tax].php
↓- taxonomy.php
↓- archive.php
↓- index.php
Страница автора
- author-[author-nicname].php
↓- author-[author-id].php
↓- author.php
↓- archive.php
↓- index.php
Теперь вы знаете, что у вас также могут быть разные варианты для разных пользователей. Как и в варианте с рубриками или метками, файлы могут быть разными и идентифицироваться по slug (в данном случае, это будет ник пользователя) или ID пользователя.
Страница прикрепленного файла
- [mime-type].php
↓- attachment.php
↓- single.php
↓- index.php
Как вы можете видеть, у вас могут быть разные виды страниц для разных типов прикрепленных файлов. Они дифференцируются по mime-типу прикрепленного файла.
Страница даты
- date.php
↓- archive.php
↓- index.php
Для специфической страницы даты мы можем создать файл date.php в папке темы. Затем очередь идет к archive.php и в завершение – к index.php.
Страница архива
- archive.php
↓- index.php
Поскольку мы перешли к типам файлов, количество загружаемых файлов в иерархии уменьшилось. Так что сохраняется только лишь основная цепочка, которая, в основном, применима к большинству остальных файлов в любой теме WordPress.
Страница поиска
- search.php
↓- index.php
Вы можете настроить свою выдачу результатов поиска с помощью файла search.php. Если файла search.php нет, будет вызываться index.php.
Страница 404
- 404.php
↓- index.php
В случае, если пост не будет найден, WordPress будет искать файл 404.php, а затем, если не найдет этот файл, обратится к index.php.
Заключение
У вас есть много вариантов использования этой информации для создания своих шаблонов для разных страниц. Во многих случаях, даже если вы используете существующую тему, вы можете сделать свое решение, не внося правки в существующие файлы. Вам просто нужно создать новый файл и правильно назвать его, исходя из вышеизложенной информации.
Поделитесь своими мнениями или напишите о том, какой еще файл можно внести в иерархию.
Комментарии к записи: 1
зачем кодекс переписывать если там это на русском написано