Как создать иерархию шаблонов в WordPress для разных типов страниц

|

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

Что такое иерархия шаблонов WordPress и зачем она нужна

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

Иерархия позволяет создавать более точечные и специализированные шаблоны, которые отвечают за отображение определенных типов контента или страниц, не затрагивая все остальные.

Это особенно полезно, если сайт содержит разные типы записей, страницы с уникальным дизайном или сложные структуры с кастомными таксономиями.

Базовая иерархия шаблонов WordPress для страниц и записей

Для понимания важно знать основные шаблоны и их приоритеты:

Эти правила можно расширять, создавая свои шаблоны под конкретные задачи.

Как создать кастомную иерархию шаблонов для пользовательских типов записей

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

Пример регистрации типа записи с помощью функции wphierarchy_register_custom_post_type():

function wphierarchy_register_custom_post_type() {
  $args = [
    'public' => true,
    'label'  => 'Продукты',
    'has_archive' => true,
    'supports' => ['title', 'editor', 'thumbnail'],
  ];
  register_post_type('product', $args);
}
add_action('init', 'wphierarchy_register_custom_post_type');

После регистрации типа записи создайте в теме файл single-product.php. В нём вы можете настроить вывод по своему усмотрению:

<?php get_header(); ?>
<div class="product-single">
  <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <h1><?php the_title(); ?></h1>
    <div class="content"><?php the_content(); ?></div>
  <?php endwhile; endif; ?>
</div>
<?php get_footer(); ?>

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

Создание иерархии шаблонов для кастомных таксономий

Если у вас есть кастомные таксономии, например product_category, вы можете создать шаблоны:

Пример регистрации таксономии и шаблона:

function wphierarchy_register_taxonomy() {
  register_taxonomy('product_category', ['product'], [
    'label' => 'Категории продуктов',
    'hierarchical' => true,
    'rewrite' => ['slug' => 'product-category'],
  ]);
}
add_action('init', 'wphierarchy_register_taxonomy');

В файле taxonomy-product_category.php можно вывести список продуктов категории:

<?php get_header(); ?>
<h1><?php single_term_title(); ?></h1>
<?php if (have_posts()) : ?>
  <ul>
  <?php while (have_posts()) : the_post(); ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
  <?php endwhile; ?>
  </ul>
<?php else : ?>
  <p>Нет продуктов в этой категории.</p>
<?php endif; ?>
<?php get_footer(); ?>

Использование условных тегов для дополнительной кастомизации иерархии шаблонов

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

Например, в single.php можно добавить:

if (is_singular('product')) {
  // Вывод кастомного шаблона для продукта
  get_template_part('template-parts/content', 'product');
} else {
  // Стандартный вывод для других записей
  get_template_part('template-parts/content', get_post_type());
}

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

Примеры плагинов для управления иерархией шаблонов

Если хочется упростить работу с иерархией шаблонов, можно использовать плагины:

Также обратите внимание на Clearfy Pro — мощный инструмент для оптимизации и настройки WordPress, который может помочь с управлением шаблонами и структурой сайта.

Как отлаживать иерархию шаблонов: советы и инструменты

Для понимания, какой шаблон используется на странице, полезно добавить следующий код в functions.php вашей темы:

function wphierarchy_debug_template() {
  global $template;
  echo '<!-- Используемый шаблон: ' . basename($template) . ' -->';
}
add_action('wp_footer', 'wphierarchy_debug_template');

Это выведет в исходном коде страницы название файла шаблона, что удобно для отладки.

Также рекомендуются плагины, упомянутые выше, и инструменты разработчика браузера для анализа HTML и CSS.

Выводы и рекомендации по созданию иерархии шаблонов

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

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

Использование плагинов для регистрации типов и анализа шаблонов значительно ускорит процесс разработки и упростит поддержку.

Создание дерева категорий с подсчетом постов в WordPress
06.03.2026
Как создать иерархию меню в WordPress с подменю и кастомными атрибутами
22.12.2025
Как настроить виртуальные иерархии в WordPress для определённых типов постов
08.01.2026
WooCommerce: автоматическое установление родительской категории при импорте товаров
08.05.2026
Как создать и использовать иерархию пользователей в WordPress для управления доступом
15.12.2025
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее