использование get_template_parts()

Вопрос или проблема

Я пытаюсь добавить раздел шаблона, который у меня есть в директории 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' );

Объяснение параметров функции

  1. Первый параметр — это путь, указывающий на файл шаблона, который вы хотите подключить. Этот путь не должен начинаться с символа /, и в нём не нужно указывать расширение файла .php. WordPress сам добавляет это расширение по умолчанию. Таким образом, если вы напишете template-parts/hero, система WordPress будет искать файл hero.php в каталоге template-parts.

  2. Второй параметр — опциональный, предназначен для передачи дополнительных значений шаблону. В данном случае, если вы укажете, например, '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() значительно упростит управление шаблонами в вашем проекте и позволит избежать распространенных ошибок. Эта функция не только упрощает процесс, но и помогает вам поддерживать чистоту и читаемость вашего кода, что является важным аспектом любой веб-разработки. Выбор правильного способа подключения шаблонов — это шаг к более эффективному и структурированному коду.

Оцените материал
Добавить комментарий

Капча загружается...