WordPress

Иерархия шаблонов WordPress: полное руководство

Иерархия шаблонов wordpress

Если вы хотите использовать весь потенциал WordPress, то вам непременно нужно узнать больше о шаблонах. Когда WordPress отображает страницу, он использует шаблоны, чтобы определить, как всё должно выглядеть. Более того, CMS придерживается строгой иерархии, благодаря которой всё выглядит организованно и слаженно. Зная, что такое иерархия шаблонов WordPress и как она работает, вы сможете более точно настроить тему своего сайта.

Иерархия шаблонов WordPress состоит из семи основных категорий:

  1. Главная страница сайта
  2. Одиночная запись
  3. Статическая страница
  4. Страница категорий и тегов
  5. Пользовательские типы записей
  6. Страница результатов поиска
  7. Страница 404 (ничего не найдено)

В этом руководстве мы познакомим вас с шаблонами WordPress и их иерархией. Мы также объясним, как темы используют файлы шаблонов для отображения страниц вашего сайта. Перед нами огромное поле для деятельности, поэтому давайте приступим к его обработке!

Введение в файлы шаблонов (и как они соотносятся с темами WordPress)

Когда вы создаёте простой статический веб-сайт, вы обычно просто используете HTML и CSS для рендеринга и настройки его внешнего вида. WordPress, с другой стороны, намного мощнее. Платформа построена на языке PHP, и она использует несколько специальных файлов .php для определения того, как формируются отдельные части ваших страниц сайта.

Например, посмотрите на правую часть этой публикации. Есть боковая панель, указывающая на другие похожие публикации из нашего блога. Когда ваш браузер сказал WordPress загрузить эту статью одновременно с этим было подтянуто несколько файлов-шаблонов, один из которых называется sidebar.php. Этот файл содержит информацию о том, как отобразить боковую панель, которую вы видите сейчас, и какие элементы она должна включать:

Пример sidebar в wordpress

Боковые панели – это, конечно, только одна из частей полной страницы. Для большинства страниц WordPress требуется несколько файлов шаблонов для работы, в том числе:

  • index.php
  • header.php
  • sidebar.php
  • footer.php
  • functions.php
  • single.php
  • comments.php

Надо отметить, что это не все файлы-шаблоны, которые вы можете найти в WordPress. header.php, sidebar.php и footer.php, особенно важны, поскольку они известны как ‘часть шаблона’ (“template partials’). Это означает, что они могут быть встроены в другие шаблоны.

Подход WordPress к созданию страниц вначале может показаться сложным. Однако, этот подход достаточно эффективный. Если у вас был уникальный шаблон для каждой отдельной страницы вашего сайта, настройка была бы кошмаром. Модульный подход к шаблонам WordPress позволяет вам вносить изменения в один файл и использовать этот элемент в любом месте сайта.

Когда дело доходит до выбора шаблонов для каждой страницы, первое, что WordPress делает – это проверяет вашу текущую тему. Каждая тема включает в себя собственный набор файлов-шаблонов, который будет иметь приоритет над всеми остальными. Это часть того, что мы называем ‘иерархией шаблонов WordPress’ в действии, что мы и рассмотрим в следующем разделе.

Теперь, когда вы понимаете, как WordPress отображает ваши страницы, становиться понятно, что темы – это, в основном, коллекция файлов-шаблонов. На практике для темы требуется только один файл шаблона, и это – index.php. Тем не менее, большинство тем включает в себя гораздо больше шаблонов. Для тех моментов, которые не описаны в выбранной теме, WordPress возвращается к другим файлам в своей иерархии, чтобы заполнить эти пробелы.

Как работает иерархия шаблонов WordPress

В предыдущем разделе мы познакомили вас с некоторыми примерами файлов шаблонов WordPress. Однако это были лишь некоторые из шаблонов, которые могут использоваться при загрузке страницы или записи. Иерархия шаблонов WordPress определяет, какие шаблоны используются и в каком порядке.

Например, если вы попытаетесь загрузить страницу для абстрактной категории хостинга, то вот что будет происходить в фоновом режиме:

  1. WordPress будет искать файл шаблона под названием category-hosting.php в каталоге текущей темы.
  2. Если файл category-hosting.php не будет найден, WordPress будет искать тот, который использует идентификатор категории, например, category-2.php.
  3. Если WordPress не найдёт ни одного из этих параметров, он будет искать общий файл category.php.
  4. Если же и файл с именем category.php не будет найден, WordPress откатится назад и будет искать шаблон archive.php.
  5. Наконец, если все остальные действия закончатся безуспешно, платформа загрузит файл index.php вашей темы и будет использовать его в качестве шаблона страницы.

Некоторые файлы шаблонов всегда имеют приоритет над другими, поэтому они организованы в иерархию. В широком смысле сайты WordPress состоят из семи категорий страниц, каждая из которых имеет свою строго определённую иерархию. Теперь давайте рассмотрим, что собой представляют эти категории и как работают их иерархии.

Объяснение иерархии шаблонов WordPress (7 категорий)

Страницы каждого сайта на WordPress можно разделить на семь категорий. Каждая из этих категорий имеет встроенную иерархию, по каждой из которой мы вас проведём.

1. Главная страница сайта

Прежде всего, давайте поговорим о первой (главной, домашней) странице вашего сайта. Когда WordPress загружает главную или домашнюю страницу, первое, что он будет искать, это файл front-page.php. Если этот файл недоступен, платформа вернётся к home.php. Если оба файла будут отсутствовать, WordPress обратится к неизменно надёжному файлу index.php, который всегда есть (иначе ваша тема не будет работать).

Иными словами, данная иерархия подразделяется так:

  1. front-page.php
  2. home.php
  3. index.php

Даже если эти три файла будут одинаковыми, WordPress по-прежнему будет следовать своей внутренней логике. Конечно, эта конкретная иерархия довольно проста. Перейдём к категории страниц, которая немного сложнее.

2. Одиночная запись

Статьи WordPress (например, эта) попадают под категорию одиночных записей. В начале этого раздела мы поговорили о некоторых файлах шаблонов, участвующих в формировании записи. Однако это были в основном внутренние элементы. Прежде чем WordPress сможет их отобразить, он должен определить, какой файл шаблона использовать для страницы в целом.

Вот как работает иерархия одиночных записей:

  1. single-{post-type}-{slug}.php
  2. single-{post-type}.php
  3. single.php
  4. singular.php
  5. index.php

Вероятно, вы не узнаете некоторые из этих файлов шаблонов, поэтому давайте дадим им некоторый контекст. Вначале списка single-{post-type}-{slug}.php. Более понятным примером может быть single-product-ca-12.php, в случае интернет-магазина. Иными словами, WordPress будет искать уникальный файл шаблонов для каждого загружаемого вами сообщения в пределах своей конкретной категории. Если платформа не может найти подходящий шаблон, она вернётся на шаг назад к single-{post-type}.php и так далее, пока неминуемо снова не достигнет index.php.

На практике этот подход позволяет создавать пользовательские шаблоны для отдельных записей или продуктов. Однако, если вы предпочитаете использовать один шаблон WordPress для всех своих публикаций, для этого нужен single.php.

3.  Статическая страница

Статически страницы попадают в отдельную категорию в WordPress. Например, возьмите сайт Hostinger в целом. https://www.hostinger.ru – это наша главная страница, и при обращении к ней загружается шаблон front-page.php. Другие разделы сайта, такие как https://www.hostinger.ru/kupit-hosting-sajtov, относятся к категории статических страниц.

Статические страницы реализуют такую иерархию:

  1. Пользовательский файл шаблона
  2. page{slug}.php
  3. page-{id}.php
  4. page.php
  5. singular.php
  6. index.php

Обратите вимание, что первый пункт в списке не является именем файла. Это потому, что WordPress может распознавать несколько типов контента как статические страницы. Например, если вы имеете дело с записью, WordPress по умолчанию будет использовать иерархию, о которой мы говорили ранее. Статические страницы, с другой стороны (такие как, /kupit-hosting-sajtov), будут перемещаться прямо на page-slug.php. В нашем примере это будет page-kupit-hosting-sajtov.php (если такой файл существует).

С этого момента данная иерархия работает так же, как и с записями. Если нет шаблона для уникальной структуры страницы, WordPress будет искать тот, который соответствует его идентификатору, и так далее. Как всегда, в итоге все пути приводят к index.php, если вы не находите решение на более ранних шагах.

4. Страницы категорий и тегов

Как вы помните, мы фактически рассмотрели иерархию категорий ранее в этой статье в качестве примера. В любом случае, давайте разберём шаблоны, которые эта иерархия охватывает по порядку:

  1. category{slug}.php
  2. category-{id}.php
  3. category.php
  4. archive.php
  5. index.php

Эта иерархия работает так же, как для одиночных записей и статических страниц. WordPress будет искать шаблон, который является уникальным для категории, которую вы хотите загрузить, сначала по имени файла, которое включает его специальную часть адреса (slug), а затем, перейдёт к его идентификатору. Если этот подход завершится безуспешно, он будет работать с category.php, а затем archive.php. В конце концов, ваш архив WordPress должен включать сообщения из всех ваших категорий, поэтому имеет смысл включить его в эту конкретную иерархию.

В этом разделе мы также упоминаем теги WordPress, потому что и категории и теги являются таксономическими элементами. Кроме того, их иерархии в точности совпадают, за исключением того, что вы заменяете все экземпляры категории ‘category’ на тег ‘tag’, и тогда – category-{slug}.php становится tag-{slug}.php и т.д.

5. Произвольные (пользовательские) типы записей

Если вы не знакомы с произвольными или пользовательскими типами записей, то имеет смысл отметить, что этот тип контента в основном не подпадает под WordPress классификации по умолчанию. Например, если вы запустите блог, который фокусируется на обзорах, вы можете создать собственный тип записей, называемый reviews (отзывы), и настроить его для включения дополнительных функций.

Однако создание произвольных типов записей является темой другого руководства. На данный момент достаточно сказать, что у этих типов контента есть своя иерархия:

  1. archive-{post_type}.php
  2. archive.php
  3. index.php

Как вы можете видеть, данная иерархия формируется не так чётко, как некоторые другие. Тем не менее, по прежнему есть несколько уровней шаблонов, прежде чем перейти к index.php, чего достаточно для создания сложных страниц.

6. Страницы результатов поиска

Теперь, в двух последних категориях страниц WordPress, всё становится проще. У нас есть результаты поиска, которые в большинстве случаев чрезвычайно просты в своей компоновке. Эта простота отражена в их иерархии:

  1. search.php
  2. index.php

В этом случае WordPress сразу перейдёт к index.php, если не может найти настраиваемый шаблон для вашей страницы результатов поиска. Тем не менее, большинство современных тем будут включать в себя некоторую настройку для вашей страницы поиска.

7. Страница 404 (ничего не найдено)

Страница 404 – это страница ошибки. Обычно вы надеетесь, что ваши пользователи никогда не увидят эти страницы, но позаботиться о них всё же важно на всякий случай. Изначально WordPress не включает настраиваемые страницы ошибок, но их достаточно легко установить.

Если вы создадите собственную страницу ошибок, WordPress будет искать её сначала, как показано в этой иерархии:

  1. 404.php
  2. index.php

По нашему мнению, стоит потратить время на создание настраиваемой страницы ошибок, если на вашем сайте большой трафик. Таким образом, ваши пользователи не будут испуганы в тех редких случаях, когда появится ошибка.

Иерархия шаблонов WordPress в действии

В этом последнем разделе мы рассмотрим, как иерархия шаблонов WordPress может работать в реальной ситуации. В качестве примера мы будем использовать гипотетический сайт.

Представьте, что вы создали сайт, который включает домашнюю страницу, пару статических страниц и множество записей. Вы также используете настраиваемую тему, которая включает в себя эти файлы шаблонов:

  • index.php
  • home.php
  • page.php
  • archive.php
  • category.php

Это небольшая и аккуратная коллекция файлов шаблонов, но её более чем достаточно для работы сайта. В этом случае, если бы вы посетили домашнюю страницу, WordPress загрузил бы шаблон home.php.

Ниже приведены примеры других страниц, которые вы можете посетить, и файлы шаблонов, которые они будут использовать:

  • Случайная запись загрузила бы index.php в качестве файла шаблона, потому что в рассматриваемой иерархии нет других шаблонов.
  • Любая посещаемая категория будет использовать файл шаблона category.php, поскольку такой шаблон WordPress есть в наличии. Если бы его не было, WordPress вместо него загрузил бы archive.php.
  • Ваши статические страницы будут использовать page.php, но они будут по умолчанию переходить к index.php, если первый файл не будет доступен.
  • Поскольку среди шаблонов нет страницы с ошибкой, WordPress будет использовать index.php в качестве шаблона в этой ситуации.

Можно приводить много примеров, но данный пример должен дать вам представление о том, как подобный сайт будет работать. Какие шаблоны WordPress будут использовать, определяется настройками темы и иерархиями, о которых мы говорили ранее. Надеемся, что данное руководство послужит хорошей отправной точкой, если вам понадобится работать с иерархией шаблонов WordPress в будущем.

Заключение

Иерархия шаблонов WordPress может показаться сложной на первый взгляд. Однако в приведенных выше разделах мы изложили, какие файлы шаблонов имеют приоритет друг перед другом. Благодаря этой информации вы будете точно знать, какие файлы вам нужно исправить, если вы хотите внести изменения в свою текущую тему WordPress.

У вас есть вопросы об иерархия шаблонов WordPress и их работе на вашем сайте? Задайте вопрос в разделе комментариев ниже!

Добавить комментарий

Нажмите здесь, чтобы оставить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Присоединяйтесь к тысячам других подписчиков по всему миру

и получайте самые свежие руководства на вашу электронную почту

Пожалуйста, подождите...

Спасибо за подписку!

Начните экономить сейчас!

Хостинг и доменное имя от

42
00
грн/мес