В процессе разработки шаблонов для WordPress часто возникает необходимость разделить большие и сложные файлы шаблона на более мелкие, логически обособленные части. Это упрощает поддержку кода, ускоряет разработку и повышает читаемость. В этой статье подробно разберём, как правильно разносить конкретные части шаблона на отдельные файлы, используя стандартные функции WordPress и практические советы.
Почему важно разделять шаблон на отдельные файлы
Когда шаблон состоит из одного большого файла, например, index.php или single.php, он быстро становится неудобным для понимания и поддержки. Разделение на части позволяет:
- Избежать дублирования кода, подключая одинаковые элементы в разных шаблонах.
- Упростить командную работу — каждый разработчик может работать над своей частью.
- Быстро вносить изменения, не боясь сломать соседние блоки.
- Повысить модульность и расширяемость шаблона.
Например, часто логично вынести в отдельные файлы такие части, как шапка сайта, подвал, боковая колонка, навигация и отдельные блоки контента.
Использование функций get_header, get_footer и get_sidebar
WordPress из коробки предоставляет функции для подключения стандартных частей шаблона:
get_header()— подключает файлheader.php.get_footer()— подключает файлfooter.php.get_sidebar()— подключает файлsidebar.php.
Чтобы разделить шаблон, например, single.php, достаточно заменить соответствующие блоки в нем на вызовы этих функций. Пример:
<?php
wpkit_get_header(); // подключаем шапку
?>
<div class="content">
<?php
while ( have_posts() ) : the_post();
the_content();
endwhile;
?>
</div>
<?php
wpkit_get_sidebar(); // подключаем сайдбар
wpkit_get_footer(); // подключаем подвал
?>
Здесь для примера функции обернуты в префикс wpkit_ для избежания конфликтов, что полезно в крупных проектах.
Создание и подключение кастомных частей шаблона с get_template_part()
Иногда стандартных частей недостаточно, и нужно вынести, например, блок с комментариями или отдельный компонент вывода записи. Для этого используется функция get_template_part():
wpkit_get_template_part('template-parts/content', 'single');
Эта функция подключит файл template-parts/content-single.php. Такой подход помогает строго структурировать шаблон.
Пример использования для вывода комментариев:
wpkit_get_template_part('template-parts/comments');
В файле template-parts/comments.php пишем код для отображения комментариев.
Практический пример: разделение шаблона single.php
Допустим, у нас есть шаблон single.php с кодом:
<?php get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
while ( have_posts() ) : the_post();
the_title('<h1>','</h1>');
the_content();
endwhile;
?>
</main>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Разобьём его на части:
- Шапка:
header.php - Подвал:
footer.php - Сайдбар:
sidebar.php - Контент записи:
template-parts/content-single.php
В single.php оставим:
<?php wpkit_get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php wpkit_get_template_part('template-parts/content', 'single'); ?>
</main>
</div>
<?php wpkit_get_sidebar(); ?>
<?php wpkit_get_footer(); ?>
В template-parts/content-single.php пишем:
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
the_title('<h1>','</h1>');
the_content();
endwhile;
endif;
?>
Таким образом, мы разделили логику и сделали шаблон более удобным для поддержки.
Советы по организации файлов шаблона
Рекомендуется:
- Создавать папку
template-partsдля всех мелких компонентов шаблона. - Использовать префикс (например,
wpkit_) в названиях своих функций для подключения шаблонов, чтобы избежать конфликтов с плагинами. - Для сложных страниц создавать отдельные папки с частями шаблона, например,
template-parts/single/илиtemplate-parts/page/. - Писать в отдельных файлах только необходимый код без лишнего HTML, чтобы обеспечить гибкость.
Использование плагина Clearfy Pro для оптимизации шаблона
Если вы используете плагин Clearfy Pro, он поможет убрать лишние запросы и оптимизировать загрузку подключаемых частей шаблона. Например, отключить ненужные стили и скрипты, которые могут подключаться в отдельных частях шаблона.
Это особенно важно при разделении шаблона, чтобы не перегружать страницу.
Пример создания собственной функции подключения шаблона с префиксом wpkit_
function wpkit_get_template_part($slug, $name = null) {
$templates = array();
if ($name) {
$templates[] = "$slug-$name.php";
}
$templates[] = "$slug.php";
locate_template($templates, true, false);
}
function wpkit_get_header() {
get_header();
}
function wpkit_get_footer() {
get_footer();
}
function wpkit_get_sidebar() {
get_sidebar();
}
Используя такие функции, вы централизуете подключение частей шаблона и сможете в дальнейшем добавлять логику в одном месте.
Заключение по теме разделения шаблона
Разбиение шаблона WordPress на мелкие части — ключевой навык для профессиональной разработки. Это повышает удобство сопровождения, упрощает масштабирование и снижает вероятность ошибок. Используйте стандартные функции WordPress и организуйте структуру файлов логично и последовательно. Внедряйте свои обёртки с префиксами для безопасности и гибкости. Дополнительно оптимизируйте подключаемые части с помощью плагинов, например, Clearfy Pro.
Если хотите глубже автоматизировать сборку и разбиение шаблона, рекомендуем ознакомиться с возможностями WP-Kit, который позволяет упростить работу с шаблонами и компонентами.