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

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

Шаблоны в рамках темы WordPress, как и во многих других CMS, имеют строго определенную иерархию. Что это означает на практике?

Когда WP требуется определить какой шаблон (файл из папки темы) использовать, движок, в зависимости от типа страницы, проверяет наличие определенных файлов. Если существует несколько файлов, подходящих на роль шаблона текущей страницы, тогда выбирается наиболее «кастомный», подходящий для самого редкого случая.

Можно говорить о как минимум трех уровнях иерархии.

Базовый шаблон в иерархии WordPress

index.php

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

Уровень структурных единиц

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

Для каждого случая WordPress проверяет свой шаблон:

  • arhive.php — ленты, архивы публикаций.
  • single.php — конечная статья блога (запись или кастомный тип).
  • page.php — страница раздела сайта (тип — страницы).
  • home.php — общая лента публикаций, если главная должна показывать ленту постов.
    • front-page.php — заменяет page.php, если главная — это выбранный раздел сайта, или заменяет home.php.
  • 404.php — шаблон для 404-й ошибки.
  • search.php — страница поиска по сайту.

Уровень с параметризацией

Следующий уровень уже зависит от определенных параметров. Это может быть и тип публикации, адрес или POST_ID страницы и т.п. В имени файла шаблона фигурирует значение одной из переменных.

Наиболее развита иерархия у архивов.

Авторские архивы

Могут собственный шаблон (author.php), в том числе и персонально для каждого автора (author-{$id}.php или author-{$nicename}.php).

Архивы таксономии (категории, теги и пр.)

Таксономия в WP имеет много лиц. Хотя категории, теги и пользовательские словари — суть одно, но WP поддерживает разные имена шаблонов для встроенных и пользовательских словарей.

Архив рубрик (категорий) — category.phpcategory-{$id}.phpcategory-{$slug}.php.

Архив меток (тегов) — tag.php, tag-{$id}.php, tag-{$slug}.php.

Архив таксономии — taxonomy.php, taxonomy-{$taxonomy}.php (имя словаря), tag-{$taxonomy}-{$term}.php (имя словаря и slug термина).

Календарные архивы

Архивы за год, месяц, день будет выводится в шаблоне date.php. Возможно ли деление по конкретным годам, месяцам и т.п. — я не проверял. :)

Конечные публикации и вложения

Вордпресс поддерживает страницы вложений. Вообще каждая картинка, файл, загруженные в «Медиафайлы», имеет свою страницу на сайте. Чтобы страница вложений отличалась от публикаций (single.php), используйте шаблон attachment.php. Для каждого типа вложения можно определить отдельный шаблон — {$mimetype}.php.

Если внешний вид разных типов публикаций отличается, можно создать шаблоны single-{$posttype}.php.

Страницы

После page.php в иерархии WordPress идет шаблон page-{$id}.php или page-{$slug}.php. Для каждой страницы в редакторе можно задать собственный шаблон. Нужно лишь дать шаблону имя, чтобы WP его «подхватил» и показал в списке.

Прочие шаблоны

Мы рассмотрели только часть шаблонов, которые используются только для оформления страниц сайта. Но WP распознает еще и шаблоны для особых элементов — блока комментариев (comments.php), сайдбаров (sidebar.php, sidebar-{$id}.php) и т.п.

Для них работают схожие принципы template suggestions.

Документация от WP.

Мало букафф? Читайте есчо !

Как добавить в contact form 7 плейсхолдер элемента

Апрель 1, 2023 г.

Неудобно, что прямо в редакторе нельзя задать нужные атрибуты, приходится искать либо в коде, чтобы подсмотреть как это реализовано, или на форумах. Нужно было создать элементы формы с атрибутом placeholder. Оказалось, что wpcf7 понимает следующую ...

Читать

Добавление поля с картинкой в редактор таксономии WP

Июль 4, 2017 г.

Таксономия (словари) Wordpress может быть модифицирована под любые нужды проекта. Для этого CMS предоставляет мощное API, благодаря которому есть готовые ...

Читать

Убрать мета тег generator в WP

Январь 12, 2017 г.

Не знаю как родилась идея у разработчиков WP выводить информацию о текущей версии используемого сайтом движка. Речь идет о добавлении в секцию head мета тега "generator". Выглядит этот тег, например, вот так: [crayon-69af2e355a152585639439/] ...

Читать

Получить ID публикации по адресу (slug, path, name) в WP

Февраль 8, 2018 г.

Wordpress API очень разрослось, и почти на каждый случай есть своя функция. И в этой куче функций найти то, что нужно, бывает не просто. Задача - получить ID публикации по её адресу, а вернее значению slug или post_name. В кодексе есть подходящая ...

Читать
 

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

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: