Файлы шаблона WordPress
Опубликовано: 01.09.2018
Редактировали какие-нибудь готовые темы для WordPress? Наверное заметили, что в каждой своя структура файлов.
Создание WordPress темы Урок 2 — Файлы шаблона
Например в одной из них за вывод рубрик отвечает category.php, а в другой это archive.php, в третьей вообще отсутствуют оба. Почему так?
Это потому, что существует порядок, следуя которому WordPress, в зависимости от текущей страницы сайта, ищет соответствующие файлы в директории темы и, если они существуют — подключает.
Создание Wordpress Темы (Шаблона) с нуля - Урок 2 Иерархия шаблонов, файл function.php
Этот пост должен раз и навсегда ответить на вопрос — какой из PHP-файлов темы используется для отображения той или иной страницы сайта?
Условные теги WordPress
Условные теги — это функции, которые позволяют определить что-либо и дать однозначный ответ (логическое true или false). «Условные» потому что практически всегда используются внутри условия if.
К примеру, функция is_single() позволяет определить, находимся ли мы, просматривая сайт в данный момент, на странице поста.
Полный список условных тегов WordPress и их документацию вы найдёте здесь .
На некоторых схемах ниже, для того, чтобы обозначить, для какого типа страницы используются определенные файлы, я как раз таки задействовал условные теги.
Схема порядка подключения файлов шаблона
Кликните по картинке, чтобы открыть в полном размере.
На графике показан порядок, по которому WordPress запрашивает файлы. Есть и альтернативные варианты этой схемы, чуть более старые или урезанные, но рабочие, вот первый , а вот второй .
А теперь разберемся, что означает каждая переменная (на графике — со знаком $).
$id Ну насчет ID понятно. Немного дополнительной информации вы найдете в этих статьях: $slug Наряду с названием и айдишником, каждый объект в WordPress, будь то посты, комментарии или таксономии (искл. пользователи) имеет ярлык (или слаг). Так же, как и название объекта, ярлык задается в админке самим пользователем. $nicename Это ник автора, и под ником подразумевается user_nicename — на моём опыте всегда совпадало с user_login (именем пользователя). $taxonomy Название таксономии $term Ярлык элемента таксономии $posttype Название типа поста , для которого используем данный шаблон. $mimetype, $subtype Как вы возможно уже поняли из схемы, это актуально для страницы вложений.Предположим, что во вложении у нас картинка PNG, то есть image/png — для данного примера переменные принимают значения image = $mimetype, png = $subtype, image-png = $mimetype-$subtype, по приоритету — в перечисленном порядке, как на схеме.
$custom Название файла шаблона страниц — про них всё подробно расписано здесь .Примеры
Сразу же приведу пример для страницы с рубрикой с ID = 54 и ярлыком myphotos:
category-myphotos.php в первую очередь WordPress ищет этот файл в папке с темой, если его не существует, то файл со следующего пункта списка, category-54.php если и этого файла нет в директории темы, то переходим к следующему пункту и так далее, category.php, archive.php, index.php;Следующий момент, который может быть не до конца понятен, отображён на этой части схемы:
Для страниц добавлен блок с условием «Используется ли шаблон страницы», а для записей и других типов постов — нет. На самом деле начиная с версии WordPress 4.7 можно использовать шаблоны страниц и для записей других типов , на этой схеме это тоже показано — custom.php это и есть произвольный шаблон, просто для страниц и других типов постов эта часть схемы немного отличается, хотя суть одна и та же.
Какой файл 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 в любом случае остаётся в приоритете!
B традиционно теперь, видео
Сегодня | Завтра | ||
USD | 32.62 | 32.50 | |
EUR | 39.90 | 39.92 |
Обменник | Переходов |
Wmchanger | 6 |
E-Market | 5 |
WMtoCash.com | 4 |
Str-Money | 3 |
Hot-Change | 3 |
Вы можете получить WMR-бонус в размере 0,01-0,10 WMR на свой кошелек 1 раз в сутки | |
Кошелек
|
|
Код
|
|
Обмен Webmoney |