Функция get_template_part()
в WordPress является инструментом для организации и повторного использования кода в темах. Она облегчает включение отдельных частей шаблонов, таких как заголовки, футеры, карточки, блоки, меню навигации и другие элементы, что позволяет улучшить структуру и читаемость кода темы.
Что делает get_template_part()?
Функция get_template_part()
ищет и подключает указанный файл темы. Если используется дочерняя тема, сначала проверяется наличие файла в дочерней теме, а затем в родительской. Это аналог функции PHP include
, но без необходимости указывать полный путь до файла.
get_template_part( $slug, $name, $args );
$slug
(обязательный) — базовое имя шаблона. Это строка, указывающая на расположение файла шаблона без расширения.php
.$name
(необязательный) — конкретное имя шаблона. Это дополнительная строка, которая позволяет загрузить конкретную вариацию шаблона. Если указано, функция будет искать файл в формате{slug}-{name}.php
.$args
(необязательный, с версии 5.5.0) — массив дополнительных параметров для передаваемого файла. Эти параметры будут доступны в подключаемом файле через переменную$args
.
Возвращаемое значение
Функция возвращает null
при успешном подключении файла и false
, если файл шаблона не существует.
Пример 1: Подключение общего шаблона
Предположим, у вас есть файл content.php
, который содержит код для отображения содержания постов. Вы можете использовать get_template_part()
для включения этого файла в другие шаблоны:
<?php get_template_part( 'content' ); ?>
Пример 2: Загрузка шаблона с конкретным именем
Если у вас есть несколько версий шаблона content
, например, content-single.php
и content-page.php
, вы можете загрузить конкретную версию, передав второй параметр:
<?php get_template_part( 'content', 'single' ); ?>
<?php get_template_part( 'content', 'page' ); ?>
Пример 3: Условное подключение шаблонов
Для загрузки различных шаблонов в зависимости от типа страницы:
<?php
if ( is_single() ) {
get_template_part( 'content', 'single' );
} elseif ( is_page() ) {
get_template_part( 'content', 'page' );
} else {
get_template_part( 'content' );
}
?>
Пример 4: Подключение шаблона из подкаталога
Для подключения файла inc/nav.php
:
<?php get_template_part( 'inc/nav' ); ?>
Пример 5: Передача параметров
Передача параметров в подключаемый файл:
$params = [ 'param1' => 'hello', 'param2' => [ 1, 2 ] ];
get_template_part( 'inc/nav-single', null, $params );
В файле inc/nav-single.php
эти параметры будут доступны через переменную $args
:
<?php
echo $args['param1']; // выведет "hello"
?>
Пример 6: Подключение файлов в дочерних темах
При использовании дочерних тем, функция сначала пытается подключить файл из дочерней темы, а затем из родительской:
<?php get_template_part( 'loop', 'index' ); ?>
Порядок поиска файлов:
wp-content/themes/twentyten-child/loop-index.php
wp-content/themes/twentyten-child/loop.php
wp-content/themes/twentyten/loop-index.php
wp-content/themes/twentyten/loop.php
Дочерние темы
Использование get_template_part()
в сочетании с дочерними темами позволяет пользователям переопределять файлы шаблонов в дочерних темах, не изменяя оригинальные файлы родительской темы. Это обеспечивает сохранение изменений при обновлении родительской темы.
Хуки функции
Функция get_template_part()
предоставляет два хука:
get_template_part_{$slug}
get_template_part
Заключение
Функция get_template_part()
— это мощный инструмент для организации и повторного использования кода в темах WordPress. Она упрощает структуру тем, повышает читаемость кода и облегчает работу с дочерними темами. Используйте её для улучшения своих проектов и создания гибких, легко поддерживаемых тем.