get_template_part()
Ищет и подключает указанный файл темы (сначала проверят файл в дочерней теме, если она есть).
Похожа на PHP функцию include, только не нужно указывать путь до темы.
Обычно эта функция используется для подключения файла (части шаблона) в сам шаблон, например для подключения файла отвечающего за: хлебные крошки, меню навигации, блок ссылок пагинации, цикл вывода постов и так далее. Рассмотрим пример:
// подключит файл breadcrumbs.php из каталога текущей темы get_template_part( 'breadcrumbs' ); // подключит файл breadcrumbs-footer.php из каталога текущей темы get_template_part( 'breadcrumbs', 'footer' );
Если файла указанного для подключения не существует, то функция ничего не подключит и не вызовет никаких PHP ошибок.
Дочерние темы
При использовании дочерних тем эта функция сначала попробует подключить файл из дочерней темы, если его нет, будет подключен файл из родительской темы.
Использование этой функциональности при разработке тем, позволяет пользователям этих тем переопределять файлы темы в дочерней теме, а это в свою очередь дает возможность полноценно использовать дочерние темы и не изменять файлы основной темы, чтобы при обновлении изменения не слетели. Для этого пользователю нужно просто создать файл с соответствующим именем в дочерней теме.
Хуки из функции
Возвращает
null|false
. null при удачном подключении файла, false если файла шаблона не существует.
Использование
get_template_part( $slug, $name, $args );
- $slug(строка) (обязательный)
- Название файла, который нужно подключить.
- $name(строка)
- Дополнительное название файла. Тоже самое, что параметр $name в функциях get_footer(), get_header() и т.п.
По умолчанию: null - $args(массив) (с 5.5.0)
- Дополнительные параметры для подключаемого файла. Используйте переменную $args в подключаемом файле.
По умолчанию: array()
Примеры
#1 Передача параметров
$params = [ 'param1' => 'hello', 'param2' => [ 1, 2 ] ]; get_template_part( 'inc/nav-single', null, $params );
Теперь в файле inc/nav-single.php
указанные параметры находятся в переменной $args
. Пример кода такого файла:
<?php echo $args['param1']; // выведет hello
#2 Использование файла loop.php в дочерней теме
Допустим шаблоны лежат в каталоге wp-content/themes
, родительская тема называется twentyten
, а дочерняя twentyten-child
, тогда следующий код будет пытаться подключить файлы в следующем порядке:
<?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
#3 Подключение навигации в шаблон с использованием файла nav.php
get_template_part( 'nav' ); // Navigation bar (nav.php) ?> get_template_part( 'nav', '2' ); // Navigation bar #2 (nav-2.php) ?> get_template_part( 'nav', 'single' ); // Navigation bar to use in single pages (nav-single.php) ?>
#4 Файл из подпапок
Если подгружаемые части находятся в папках то в первый параметр нужно указать относительный путь до файла:
get_template_part( 'inc/nav' ); // подключит файл inc/nav.php
А если нужно подключить файл inc/nav-single.php
, то:
get_template_part( 'inc/nav-single' ); // будет проверяться файл inc/nav-single.php // или get_template_part( 'inc/nav', 'single' ); // сначала будет проверяться файл inc/nav-single.php // если его не существует то inc/nav.php.
Список изменений
С версии 3.0.0 | Введена. |
С версии 5.5.0 | A return value was added. |
С версии 5.5.0 | The $args parameter was added. |