Вопрос или проблема
Я пытаюсь добавить раздел шаблона, который у меня есть в директории my-child-theme/template-parts/hero.php
.
В моем шаблоне страницы (my-child-theme/templates/front-page.php
) я вызываю echo get_template_part( '/template-parts/hero.php', 'hero' );
, но, похоже, мне не удается вставить шаблон в шаблон главной страницы.
Я неправильно использую эту функцию?
Да, вы используете функцию неправильно. Вам не нужно использовать echo для возврата get_template_part()
– шаблон, на который она ссылается, автоматически будет echo
-ирован.
Более того, вам необходимо избегать начального косой черты (/
) в начале первого параметра, а также расширения .php
и второго параметра.
Ваш вызов функции в итоге выглядит как:
my-child-theme//template-parts/hero.php-hero.php
↑ ↑ ↑
Двойная косая черта caused │ Дополнительный -hero из второго параметра.
из-за начального / в первом │
параметре Дополнительное .php
из первого
параметра
На самом деле, вам нужно:
// my-child-theme/template-parts/hero.php
get_template_part( 'template-parts/hero' );
Ответ или решение
Функция get_template_part()
в WordPress предназначена для упрощения работы с шаблонами и переиспользования кода. Правильное использование этой функции является важной частью разработки тем, так как оно позволяет организовать код более структурированно и логично.
Ваше первоначальное использование функции было некорректным, и это могло привести к проблемам с её работой. Позвольте объяснить, как правильно использовать get_template_part()
.
Исправленный вызов функции
Правильный способ вызвать get_template_part()
для подключения вашего шаблона из каталога my-child-theme/template-parts/
выглядит следующим образом:
get_template_part( 'template-parts/hero' );
Объяснение параметров функции
-
Первый параметр — это путь, указывающий на файл шаблона, который вы хотите подключить. Этот путь не должен начинаться с символа
/
, и в нём не нужно указывать расширение файла.php
. WordPress сам добавляет это расширение по умолчанию. Таким образом, если вы напишетеtemplate-parts/hero
, система WordPress будет искать файлhero.php
в каталогеtemplate-parts
. -
Второй параметр — опциональный, предназначен для передачи дополнительных значений шаблону. В данном случае, если вы укажете, например,
'hero'
, WordPress будет искать файл с названиемhero-hero.php
, что не соответствует вашим ожиданиям и создает некорректный путь. Этот параметр не нужен, если вы не хотите использовать его.
Чтобы избежать ошибок
При использовании get_template_part()
нужно обратить внимание на следующие моменты:
- Избегайте ведущего слеша: Вне зависимости от того, где находится ваш файл шаблона, не начинайте путь с
/
. - Не добавляйте расширение файла: Просто укажите имя файла без
.php
. - Проверяйте путь к файлу: Если файл не подключается, убедитесь, что путь верный и файл действительно существует.
Пример кода
Вот как может выглядеть ваш файл front-page.php
после исправления:
<?php
// my-child-theme/templates/front-page.php
get_template_part( 'template-parts/hero' );
?>
Заключение
Правильное использование get_template_part()
значительно упростит управление шаблонами в вашем проекте и позволит избежать распространенных ошибок. Эта функция не только упрощает процесс, но и помогает вам поддерживать чистоту и читаемость вашего кода, что является важным аспектом любой веб-разработки. Выбор правильного способа подключения шаблонов — это шаг к более эффективному и структурированному коду.