Иерархия файлов темы
Урок 5
Содержание
Редактировали какие-нибудь готовые темы для WordPress? Наверное заметили, что в каждой своя структура файлов.
Например в одной из них за вывод рубрик отвечает category.php
, а в другой это archive.php
, в третьей вообще отсутствуют оба. Почему так?
Это потому, что существует порядок, следуя которому WordPress, в зависимости от текущей страницы сайта, ищет соответствующие файлы в директории темы и, если они существуют — подключает.
Этот урок должен раз и навсегда ответить на вопрос — какой из PHP-файлов темы используется для отображения той или иной страницы сайта?
В этом уроке мы с вами приступим к натяжке других шаблонов вёрстки на нашу тему WordPress.
Чтобы скачать тему WordPress, которая получилась у нас в процессе этого урока, необходимо приобрести курс.
Страница поста блога:
Страница 404-й ошибки:
Страница категорий (рубрики на блоге)
«Статическая» страница блога:
Типо тоже обычная страница, но не совсем – потому что содержит форму:
Условные теги — это функции, которые позволяют определить что-либо и дать однозначный ответ (логическое true
или false
). «Условные» потому что практически всегда используются внутри условия if
.
К примеру, функция is_single() позволяет определить, находимся ли мы, просматривая сайт в данный момент, на странице поста.
if( is_single() ) { // делаем что-то для страницы записи }
Полный список условных тегов WordPress и их документацию вы найдёте здесь.
На некоторых схемах ниже, для того, чтобы обозначить, для какого типа страницы используются определенные файлы, я как раз таки задействовал условные теги.
Кликните по картинке, чтобы открыть в полном размере.
На графике показан порядок, по которому WordPress запрашивает файлы. Есть и альтернативные варианты этой схемы, чуть более старые или урезанные, но рабочие, вот первый, а вот второй.
А теперь разберемся, что означает каждая переменная (на графике — со знаком $).
user_login
(именем пользователя).image/png
— для данного примера переменные принимают значения image
= $mimetype, png
= $subtype, image-png
= $mimetype-$subtype, по приоритету — в перечисленном порядке, как на схеме.
Сразу же приведу пример для страницы с рубрикой с ID = 54
и ярлыком myphotos
:
category-myphotos.php
в первую очередь WordPress ищет этот файл в папке с темой, если его не существует, то файл со следующего пункта списка,category-54.php
если и этого файла нет в директории темы, то переходим к следующему пункту и так далее,category.php
,archive.php
,index.php
;В чем отличие между index.php
, home.php
и front-page.php
?
Уверен, что этот вопрос терзает многих, как когда-то терзал меня, особенно, если вы начали своё обучение WordPress не с теории, а с практики (я имею ввиду разбор и доработка уже готовых тем). Дело в том, что в таких темах может присутствовать либо home.php
, либо front-page.php
, либо вообще ни того и ни другого файла, index.php
же присутствует всегда.
Разберем сам порядок. Сначала на схеме:
Комментирую — итак, когда мы находимся на главной странице, в первую очередь WordPress пытается подключить файл front-page.php
, если же файла не существует, вторым шагом он проверяет, что указано в настройках Настройки > Чтение, короче говоря:
home.php
, в случае его отсутствия — index.php
,Но файл front-page.php
в любом случае остаётся в приоритете!
Список уроков