Представьте ситуацию: вы открываете страницу своего интернет-магазина, а там вместо карточки товара — пустой белый лист. Или, что ещё хуже, какая-то странная ошибка. Знакомо? У многих владельцев бизнеса, которые решили самостоятельно разобраться с WordPress, рано или поздно возникает вопрос: «Почему сайт показывает не то, что я хотел?».
Ответ часто кроется в иерархии шаблонов WordPress. Это не какой-то заумный технический термин, а по сути — внутренняя логика движка, которая решает, какой файл из папки с темой взять, чтобы показать пользователю именно ту страницу, которую он запросил. Понимание этой логики — это не про «программирование ради программирования». Это про то, как вы контролируете свой сайт, а не он вас.
Когда я впервые столкнулся с тем, что сайт клиента вместо красивой страницы «Услуги» выводил список всех постов блога, я потратил полдня, перебирая настройки. А потом просто посмотрел, какие файлы лежат в папке темы. Оказалось, не хватало одного единственного файла — page.php. Движок, следуя своей иерархии, «скатился» до самого базового шаблона — index.php, который в той теме был настроен на вывод записей блога. С тех пор я убеждён: знать иерархию шаблонов должен каждый, кто хоть раз задумывался о создании сайта на WordPress.
Давайте разберемся, как работает этот механизм, и как его можно использовать в своих интересах — без лишней магии и сложного кода.
Что такое иерархия шаблонов и зачем она нужна бизнесу
Если совсем просто, то иерархия шаблонов — это список приоритетов. Когда пользователь заходит на ваш сайт, WordPress смотрит на URL и понимает, что это за страница: запись блога, страница товара, рубрика или, скажем, страница «О нас». После этого движок начинает перебирать файлы в папке вашей темы, чтобы найти самый подходящий шаблон.
Он действует по принципу «от частного к общему». Сначала ищет самый конкретный файл (например, single-product.php для конкретного товара). Если его нет — ищет менее конкретный (например, single.php для любой записи). Если и его нет — берёт универсальный index.php.
Зачем это бизнесу? Ответ прост: гибкость. Вы можете оформить главную страницу совершенно иначе, чем страницу конкретной услуги. Вы можете сделать уникальный дизайн для каждой рубрики блога или для карточек товаров. И всё это — без написания сложных условий в коде. Просто положив нужный файл в папку темы.
Для SEO это тоже критично. Представьте, что у вас интернет-магазин керамической плитки. Страница категории «Плитка для ванной» должна быть оптимизирована под поисковые запросы, содержать уникальный текст и структуру. А страница категории «Плитка для кухни» — свою. Иерархия шаблонов позволяет сделать это без боли. Вы создаёте шаблон для каждой категории или используете один, но с разными настройками через условные теги.
Как выглядит стандартная иерархия шаблонов
Давайте посмотрим на «скелет» типового сайта на WordPress. Это база, от которой отталкиваются все разработчики. Запомнить всё с первого раза нереально, но понять логику — обязательно.
Главная страница
Когда пользователь заходит на корень вашего сайта (например, mysite.ru), WordPress ищет файлы в следующем порядке:
front-page.php— самый приоритетный файл для главной.home.php— если задана статическая страница в настройках.index.php— если ничего из вышеперечисленного не найдено.
Многие начинают с index.php и используют его как главную. Это работает, но лишает вас гибкости. Лучше сразу создать отдельный файл для главной — front-page.php. Так вы сможете сделать уникальный лендинг с формой захвата, а не просто список последних новостей.
Страницы (Pages)
Страницы — это, как правило, статичные разделы: «О компании», «Контакты», «Услуги». Для них иерархия выглядит так:
page-{slug}.php— например,page-o-kompanii.php.page-{ID}.php— например,page-42.php.page.php— универсальный шаблон для всех страниц.singular.php— общий шаблон для любых «одиночных» записей (страницы и посты).index.php— последняя инстанция.
Полезный лайфхак: если вам нужно сделать уникальную страницу «Контакты» с картой и формой обратной связи, просто создайте в админке страницу, посмотрите её ID (он виден в URL при редактировании) и назовите файл page-{ID}.php. Всё. Движок сам подхватит ваш шаблон.
Записи блога (Single Posts)
Для отдельной записи в блоге порядок похож, но с нюансами:
single-{post_type}-{slug}.php— например,single-product-keramogranit.php.single-{post_type}.php— например,single-product.php.single.php— для всех стандартных записей.singular.php— общий шаблон.index.php.
Обратите внимание на post_type. Если вы используете кастомные типы записей (например, «Товары» или «Портфолио»), движок сначала будет искать файл с названием этого типа. Это очень удобно, когда на сайте несколько разных сущностей — новости, кейсы, отзывы. Вы можете оформить их по-разному.
Рубрики, метки и таксономии
Страницы архивов (списки постов из одной рубрики) тоже имеют свою иерархию:
category-{slug}.php— для конкретной рубрики, например,category-novosti.php.category-{ID}.php— для рубрики с определённым ID.category.php— для всех рубрик.archive.php— для любых архивов (включая даты, авторов).index.php.
То же самое работает для меток (tag-{slug}.php) и для произвольных таксономий (taxonomy-{taxonomy}-{term}.php).
Страница 404
Когда пользователь вводит несуществующий адрес, вы можете показать ему не просто скучную ошибку, а что-то полезное:
404.php— ваш кастомный шаблон.index.php.
В файле 404.php можно разместить форму поиска, ссылки на популярные товары или просто забавную картинку. Это снижает показатель отказов и удерживает пользователя на сайте, даже если он ошибся в URL.
Как использовать иерархию шаблонов на практике: примеры
Теория — это хорошо, но давайте посмотрим на реальные бизнес-сценарии.
Сценарий 1: Интернет-магазин с разными категориями товаров
У вас есть магазин одежды. Категория «Платья» и категория «Обувь» должны выглядеть по-разному. В первой — акцент на фото моделей, во второй — на детализацию товара.
Вместо того чтобы писать сложные условия в одном файле archive.php, вы создаёте два файла:
category-platya.phpcategory-obuv.php
В каждом — свой HTML-каркас, свои блоки с фильтрами и текстом. Движок сам подставит нужный файл при переходе в соответствующую рубрику. Это быстро, чисто и легко поддерживать.
Сценарий 2: Лендинг для отдельной услуги
У вас на сайте есть страница «Разработка сайтов». Вы хотите, чтобы она была не похожа на другие страницы: с большим блоком «Наши работы», каруселью отзывов и формой заявки.
Вы создаёте файл page-razrabotka-sajtov.php (где razrabotka-sajtov — это URL-адрес страницы, указанный при её создании). Всё. Больше ничего настраивать не нужно. Шаблон будет применяться только к этой странице.
Сценарий 3: Разные макеты для записей в блоге
У вас есть блог, где вы публикуете и новости компании, и экспертные статьи. Вы хотите, чтобы новости были короткими и с большим баннером, а экспертные статьи — с боковой панелью и оглавлением.
Здесь можно пойти двумя путями:
- Использовать кастомный тип записей «Экспертные статьи» и создать для него
single-ekspertnye-stati.php. - Или использовать стандартные рубрики и создать
category-novosti.phpдля списка новостей иsingle.phpдля всех остальных записей, но внутриsingle.phpдобавить проверку на рубрику.
Первый путь — чище. Кастомные типы записей в WordPress — это мощный инструмент, который позволяет отделить разные сущности друг от друга.
Как проверить, какой шаблон используется на странице
Допустим, вы всё настроили, но хотите убедиться, что система работает правильно. Есть несколько способов:
- Плагин Query Monitor. Это лучший инструмент для отладки. Он показывает, какой файл шаблона был загружен для текущей страницы, какие запросы к базе данных выполнялись и сколько времени это заняло. Для разработчика — маст-хев.
- Встроенная функция WordPress. В файл
wp-config.phpможно добавить строкуdefine('WP_DEBUG', true);иdefine('SAVEQUERIES', true);. Но это для продвинутых пользователей.
- Простой PHP-код. Если вы не боитесь залезть в код, можно временно добавить в
footer.phpвашей темы строку:
<?php echo 'Текущий шаблон: ' . basename(get_page_template()); ?>
Она покажет имя файла, который используется для рендеринга страницы.
Я обычно пользуюсь первым вариантом. Query Monitor — это как приборная панель автомобиля: показывает всё, что происходит под капотом.
Частые ошибки, которые ломают иерархию
Даже опытные разработчики иногда спотыкаются на простых вещах. Вот три самые распространённые проблемы:
Ошибка 1: Неправильное имя файла. WordPress очень требователен к регистру символов и тире. Файл page-o-nas.php и Page-O-Nas.php — это разные файлы для сервера (если он работает под Linux). Всегда используйте нижний регистр и дефисы.
Ошибка 2: Конфликт с плагинами. Некоторые плагины, особенно конструкторы страниц (Elementor, WPBakery), могут переопределять стандартную иерархию. Например, Elementor может загружать свой собственный шаблон вместо вашего page.php. В таких случаях нужно смотреть настройки плагина и, возможно, создавать шаблоны через интерфейс самого конструктора.
Ошибка 3: Кэширование. Вы создали новый файл шаблона, но сайт показывает старую версию. Скорее всего, проблема в кэше — браузера, плагина кэширования или сервера. Почистите кэш и проверьте снова.
Как кастомизировать иерархию под свои задачи
Стандартная иерархия — это база, но WordPress позволяет её расширять. Это делается с помощью хуков (template_include) и условных тегов.
Допустим, вы хотите, чтобы для всех страниц, на которых есть короткий код , использовался один шаблон, а для всех остальных — другой. Вы можете добавить в functions.php вашей темы следующий код:
add_filter('template_include', 'custom_gallery_template');
function custom_gallery_template($template) {
if (is_page() && has_shortcode(get_post()->post_content, 'gallery')) {
$new_template = locate_template(array('page-gallery.php'));
if (!empty($new_template)) {
return $new_template;
}
}
return $template;
}
Этот код говорит WordPress: «Если это страница и в ней есть шорткод галереи, попробуй загрузить шаблон page-gallery.php. Если его нет — используй стандартный алгоритм».
Такая гибкость открывает огромные возможности. Вы можете подменять шаблоны для разных ролей пользователей, для разных языков (если сайт мультиязычный), для разных устройств (мобильная версия/десктоп). Но не переусердствуйте. Чем больше кастомных правил, тем сложнее поддерживать сайт.
Итог: почему это важно для вашего бизнеса
Иерархия шаблонов WordPress — это не техническая деталь, а инструмент управления контентом. Понимая её, вы перестаёте быть заложником готовой темы. Вы можете:
- Создавать уникальные страницы для ключевых разделов сайта.
- Улучшать SEO за счёт правильной структуры и уникального контента на каждой странице.
- Ускорять разработку, не тратя время на написание сложных условий.
- Легко вносить изменения, не боясь что-то сломать на других страницах.
Если вы только начинаете, не пытайтесь запомнить все файлы. Просто держите под рукой официальную схему иерархии от WordPress (её легко найти по запросу «WordPress Template Hierarchy flowchart»). Со временем логика станет интуитивно понятной.
А если вы чувствуете, что самостоятельная настройка шаблонов отнимает слишком много времени, или хотите, чтобы сайт работал максимально эффективно — обращайтесь к профессионалам. В студии Wenesis мы ежедневно работаем с WordPress и знаем все тонкости иерархии шаблонов. Мы поможем вам настроить сайт так, чтобы он решал ваши бизнес-задачи, а не добавлял головной боли.
Добавить комментарий