Для большинства пользователей WordPress — это черный ящик. Вы помещаете некоторую информацию внутрь и видите полученную страницу веб-сайта. Но как это работает внутри? Вы, вероятно, знаете, что он закодирован, и вы, возможно, даже знаете, что разработчики используют HTML, CSS, PHP и JavaScript для этой цели, но для создания веб-сайта вам нужно знать не только принципы кодирования. Чтобы написать хороший код, который превратится в хороший веб-сайт или тему, вы должны понять, как написанный вами продукт читается и отображается системой. Вот почему я собираюсь рассказать вам о иерархии шаблонов WordPress.
Что такое иерархия шаблонов WordPress?
Я не знаю, почему вы решили работать именно с WordPress, но совершенно очевидно, что эта CMS очень популярна. Одним из ключей к его популярности является то, что из-за использования тем процесс создания сайта становится очень простым. Каждая тема сайта WordPress — это набор шаблонов страниц. Если говорить простыми словами, эти шаблоны — готовые страницы с дизайном, структурой и функциями. Когда вы, как пользователь, выбираете какую-то тему, WordPress помещает добавленный вами контент (тексты, изображения, видео и т. д.) к шаблону конкретной страницы.
Например, вы пишете пост для своего блога. Вы набрали текст, выбрали изображения, а затем нажали кнопку “Опубликовать”. Когда вы или посетитель вашего сайта открываете этот пост, WordPress выбирает шаблон страницы из папки темы, добавляет свой контент в соответствующие поля и показывает эту композицию.
Но как WordPress знает, что показать? Как он выбирает правильный шаблон для конкретного типа страницы? Вот где иерархия шаблонов WordPress вступает в игру.
Когда вы пытаетесь открыть какую-то страницу, WordPress начинает искать шаблон, который соответствует этой странице. В WordPress иерархия шаблонов представляет собой набор правил, которые определяют порядок, в котором WordPress ищет информацию. Как говорит Википедия: “иерархия — это расположение элементов, в которых эти элементы представлены как «выше», «ниже», или «на уровне» друг друга”. Таким образом, иерархия шаблонов определяет, какие шаблоны будут первыми в столбце, какие будут во второй позиции и так далее. WordPress проверяет, существует ли первый файл в столбце, затем проверяет второй, третий и продолжает, пока не найдет существующий файл.
Есть четыре файла, которые всегда лежат в нижней части таблицы проверки:
- index.php
- header.php
- footer.php
- sidebar.php
Но только один из них имеет решающее значение для функционирования сайта. Есть два файла, которые являются обязательными для каждого веб-сайта- index.php и style.css. Это означает, что WordPress всегда будет использовать index.php, если не будет другого файла, который мог бы определить дизайн страницы. И это также означает, что тема, которую вы создаете своими руками, должна иметь index.php. Даже если не будет никакого другого шаблона – без этого ничего не будет работать.
Зачем вам нужно знать иерархию шаблонов WordPress?
На самом деле, вам это не понадобится, если вы не собираетесь настраивать тему своего сайта. Или, по крайней мере, вы не собираетесь настраивать свой код напрямую. Есть много готовых шаблонов WordPress, которые вы можете использовать. Вы сможете скачать столько шаблонов, сколько хотите, попробовать их все и выбрать тот, который подходит вашему бизнесу и «вкуснее» всего.
Знание иерархии шаблонов WordPress будет полезно для людей, которые создают темы. Это также будет необходимо, если вы, в целом, удовлетворены шаблоном, но вам не нравится одна конкретная страница и вы хотите заменить ее той, которую вы создали или загрузили (что создаст дочернюю тему относительно исходной).
Иерархия шаблонов WordPress необходима создателю темы, потому что она дает ему понимание того, какие файлы он должен создать и как их назвать. Неправильное имя или отсутствие какого-либо важного файла вызовет ошибки.
Итак, рассмотрим самые основные шаблоны.
Страница архива автора
Если у вас большой блог и вы публикуете не только статьи, которые написали сами, но и тексты других авторов, у каждого из них должна быть своя отдельная страница. На этой странице пользователь может увидеть список статей, написанных этим автором, а также, возможно, некоторую информацию о нем, его опыте и интересах.
author-{somename}.php. Первый файл, который WordPress будет проверять, будет специализированным файлом авторов. Вместо {somename} будет имя автора. Например- author-kate.php.
author-{id}.php. Тот же подход, что и в предыдущем случае. Вместо {id} в имени файла будет номер. Например – author-42.php.
author.php. Этот шаблон является общим для всех личных страниц авторов.
archive.php. А этот контролирует общий вид архивных страниц.
index.php. Окончательный файл «план Б». Если ничего другого не существует – этот файл будет использован, потому что если у вас нет index.php, у вас, вероятно, вообще нет темы.
Категория архив страниц
Это удобно как для вас, так и для читателей, чтобы сортировать записи в блоге в понятных категориях. Когда пользователь нажимает на название категории, он хочет увидеть страницу со списком статей соответствующей категории. Там также может быть описание категории, список авторов и самых популярных статей.
category-{slug}.php. Если вы хотите, чтобы конкретная категория выглядела иначе, чем другие, вам нужно создать такой файл. Вместо {slug} вы должны поместить заголовок категории. Например- category-science.php.
category-{id}.php. Такая же ситуация здесь, но вместо {id} поставьте номер категории. Например- category-13.php.
category.php. Это вариант для людей, которые не хотят, чтобы категории выглядели по-другому и предпочитают точный вид. Этот файл определяет дизайн всех страниц категорий.
archive.php. Эта страница может выглядеть так же, как и другие страницы архива.
index.php. И еще раз – “план Б”, WordPress будет использовать его, если нет других файлов.
Архив страниц по типам записей
Иногда было бы неплохо отсортировать статьи по типам записей, таким как «обзор», «короткий рассказ» или «долгое чтение». После нажатия на тип сообщения читатель найдет все статьи, соответствующие этому типу.
archive-{post_type}.php. Если у вас есть сообщение типа “интервью”, название этого файла может выглядеть как архив- archive-interview.php.
archive.php. И если вы хотите, чтобы все страницы выглядели одинаково-WordPress, будет использовать этот файл.
index.php. Это файл WordPress “plan B” по умолчанию.
Архив страниц таксономии
Вы можете использовать не стандартный способ сортировки статей, таких как теги или категории, а создавать свои собственные. В этом случае, если вы хотите сделать страницу списка статей более интересной, вы должны создать для нее специальные файлы.
taxonomy-{taxonomy}-{term}.php. Например, вы можете иметь таксономию на своем веб-сайте под названием “размер” и определение “большой”. Тогда этот файл будет выглядеть так: taxonomy-size-large.php.
taxonomy-{taxonomy}.php. То же самое, но без каких-либо определений. Если есть таксономия «length», файл будет taxonomy-length.php.
taxonomy.php. Чтобы сделать вещи проще, все таксономии могут использовать этот файл для определения дизайна своих страниц.
archive.php. Или они могут выглядеть так же, как и все архивные страницы.
index.php. Это резервный файл WordPress по умолчанию.
Архив по дате
Все сообщения, которые вы или ваши авторы пишете для блога, автоматически сопоставляются с некоторой датой. При нажатии на день, месяц или год пользователь должен иметь возможность посмотреть список сообщений, которые были написаны в тот конкретный день, месяц или год.
date.php. Нет конкретных шаблонов для месяца или года – просто файл, определяющий внешний вид всех страниц, которые показывают списки сообщений в соответствии с датой.
archive.php. Конечно, они могут иметь значение по умолчанию для всех страниц архива.
index.php. Это резервный файл WordPress по умолчанию.
Страницы архива меток
Вы можете создавать любые метки, которые вам нравятся. Это почти как категории, но немного больше удовольствия и беспорядка. Когда вы нажимаете на тег, вы ожидаете увидеть список записей, соответствующих этому тегу.
tag-{slug}.php. Представьте, вы используете тег «кошки» в своих статьях в блоге. Тогда файл будет называться tag-cats.php.
tag-{id}.php. Каждый тег будет иметь идентификационный номер, поэтому название файла может выглядеть так-tag-4.php.
tag.php. Все страницы, которые показывают список сообщений с некоторым тегом, могут быть определены с помощью этого файла.
archive.php. Это файл по умолчанию для всех страниц архива.
index.php. Это файл по умолчанию, общий для всех страниц, включенных в иерархию WordPress.
Страница записей
Существует три типа одной страницы записи-пользовательская запись, вложение и запись в блоге. Когда пользователь откроет один из ваших постов, чтобы взглянуть поближе – WordPress будет использовать для этого специальный файл. На самом деле, каждый пост может иметь свой дизайн и стиль, но, думаю, у вас не будет времени и желания настраивать каждый из них. Особенно если у вас большой блог с огромным количеством постов.
Для вложений:
{mime-type}.php. Может быть любой тип mime (и это любой носитель, который вы загружаете). Например, этот файл можно назвать image.php, video.php, pdf.php.
{mime-type}-{subtype}.php. Другими словами, тип Mime — это любой носитель, загружаемый из интернета. Например, это может быть изображение, видео или pdf. Предположим, у вас есть видео mp4 на вашем веб-сайте. Тогда этот файл будет называться video-mp4.php.
{subtype}.php. Если следовать моей мысли, этот файл может иметь название в формате mp4.php.
attachment.php. Все вложения могут выглядеть одинаково, и этот файл определяет этот вид.
Для пользовательских записей:
custom.php. Это не всегда доступно-только если владелец сайта создает специальный пользовательский дизайн для некоторых записей.
single-{posttype}-{slug}.php. Я уже назвала возможные типы записей, чтобы этот файл мог иметь заголовок single-review-science. php.
single-{posttype}.php. И это можно назвать одиночным single-interview.php.
Для записей блога:
custom.php. При активации этот файл также может быть доступен для записей в блоге.
single-post.php. Это значение по умолчанию для файла single posts.
И все они подходят к этим трем файлам:
single.php. Вот файл, который определяет внешний вид всех отдельных записей.
singular.php. Если нет другого файла, эти записи могут быть показаны как отдельная страница.
index.php. Это файл “план B” по умолчанию, который является общим для всей иерархии WordPress.
Front page
Есть три типа главной страницы, которые вы можете выбрать. Первая-пользовательская страница, созданная специально для этой цели. Вторая-одна из страниц сайта. Третье-список постов, которые у вас есть в блоге.
front-page.php. Это файл создан специально для главной страницы.
home.php. Если у вас нет специальной страницы, WordPress проверит этот файл (в случае показа записей на главной) или page.php (в случае отображения одной из страниц на главной).
index.php. Это файл по умолчанию, общий для всех страниц, включенных в иерархию WordPress.
Страница ошибки 404
Одной из самых важных страниц на вашем сайте (кроме, может быть, страницы “о нас”) является страница “404” или “не найдена”. Пользователь всегда может сделать что-то не так и попасть на нее, поэтому здорово сделать эту страницу интересной и информативной. Таким образом, это будет действительно выгодно для вашего бизнеса, если вы создадите соответствующий файл в иерархии шаблонов WordPress.
404.php. Это файл по умолчанию для страницы “404”, но вы можете настроить его или заменить своим собственным, оригинальным.
index.php. Это файл “план B” по умолчанию, который является общим для всей иерархии WordPress.
Страница результатов поиска
Когда пользователь ищет что – то на своей странице-он видит результаты поиска на специальной странице. Вы можете создать специальный файл, чтобы эта страница выглядела так, как вам хотелось бы.
search.php. Файл по умолчанию для страницы результатов поиска в иерархии шаблонов WordPress.
index.php. Это файл по умолчанию, общий для всех страниц, включенных в иерархию WordPress.
Это все о иерархии шаблонов WordPress — я показала вам, как выбирается шаблон для любой страницы. Теперь, когда вы хотите создать свою собственную тему сайта – у вас есть понимание того, какие файлы вам нужно создать. Конечно, не все из них вам понадобятся, но знание того, какие файлы существуют значительно расширяет ваши возможности как разработчика.