Часть шаблона
Оригинальное название: template part
Коротко
Отдельный PHP-файл классической темы WordPress с повторяющимся фрагментом разметки — шапкой, подвалом, карточкой записи, — который подключают из разных шаблонов.
Что такое «Часть шаблона»
Без частей каждый файл темы содержал бы полную копию шапки и подвала, и смена телефона в шапке означала бы правку десятка файлов. Поэтому общие куски выносят отдельно, а шаблоны лишь собирают страницу из них. Для типовых частей у WordPress есть готовые функции, для остальных — универсальная.
Функции подключения
get_header(),get_footer(),get_sidebar()подключаютheader.php,footer.phpиsidebar.php. С аргументом, напримерget_header( 'shop' ), подключитсяheader-shop.php.get_template_part( $slug, $name )ищет файл{$slug}-{$name}.php, а если его нет —{$slug}.php.
Важное отличие от обычного include: функции сначала ищут файл в дочерней теме, потом в родительской. Поэтому дочерняя тема может заменить одну карточку товара, не копируя весь шаблон каталога.
Пример: карточка с параметрами
// в archive.php
while ( have_posts() ) {
the_post();
get_template_part( 'template-parts/card', get_post_type(), array(
'show_date' => false,
) );
}
// в template-parts/card-product.php
if ( ! empty( $args['show_date'] ) ) {
echo esc_html( get_the_date() );
}
Третий аргумент $args появился в WordPress 5.5. До этого данные в часть передавали через глобальные переменные или set_query_var(), и такой код ещё часто встречается в старых темах.
Как удобно организовать
Распространённое соглашение — складывать части в папку template-parts/ и называть по схеме «что-вариант»: content-single.php, card-product.php. Внутри части лучше не делать отдельных запросов к базе: она может вызываться в цикле десятки раз. Если часть разрослась и сама подключает другие части, это повод проверить, не пора ли упростить структуру. В блочных темах аналог называется частью блочного шаблона и редактируется визуально.

