get_template_part()

Загружает часть шаблона в другой шаблон
Функция WordPress
INT 3.0.0
WordPress Icon

Описание функции

Функция get_template_part() используется для загрузки отдельной части шаблона в текущий шаблон WordPress. Она позволяет разделить шаблон на более мелкие части, что делает его более модульным и удобным для поддержки и разработки. Функция ищет файлы шаблонов в директории темы и позволяет использовать разные файлы шаблонов для разных ситуаций или условий.

Использование

get_template_part( string $slug, string|null $name = null, array $args = array() ): void|false

Функция get_template_part() принимает три параметра: $slug, $name и $args. Она не возвращает значение, но может вернуть false, если файл шаблона не существует.

  • $slug (string, обязательный): Имя шаблона, которое будет использоваться. Это может быть путь к файлу шаблона относительно директории темы или просто имя файла шаблона без расширения.
  • $name (string|null, необязательный): Имя специализированного шаблона. По умолчанию равно null. Это может быть полезно, если вы хотите использовать разные файлы шаблонов для разных типов записей или категорий.
  • $args (array, необязательный): Дополнительные аргументы, передаваемые в шаблон. По умолчанию равен пустому массиву.

Функция не возвращает значение, но может вернуть false, если файл шаблона не существует.

<?php
  // Загрузка шаблона header.php
  get_template_part( 'header' );
  // Загрузка шаблона content.php с именем "single"
  get_template_part( 'content', 'single' );
  // Загрузка шаблона footer.php с дополнительными аргументами
  get_template_part( 'footer', null, array( 'arg1' => 'value1', 'arg2' => 'value2' ) );
?>

В этом примере мы используем функцию get_template_part() для загрузки разных частей шаблона. В первом случае мы загружаем шаблон header.php без специализированного имени. Во втором случае мы загружаем шаблон content.php с именем «single». В третьем случае мы загружаем шаблон footer.php с дополнительными аргументами, переданными в массиве.

Примеры использования

Загрузка общего шаблона


get_template_part( 'template-parts/content' );

Этот пример загружает общий шаблон с именем «content.php» из папки «template-parts» в текущем тематическом каталоге. Функция get_template_part() автоматически добавляет префикс «template-parts/» к указанному имени файла, поэтому нет необходимости указывать полный путь к файлу.

Вставка специализированного шаблона


get_template_part( 'template-parts/content', 'single' );

Этот пример загружает специализированный шаблон с именем «content-single.php» из папки «template-parts» в текущем тематическом каталоге. Функция get_template_part() автоматически добавляет префикс «template-parts/» к указанному имени файла и суффикс «-single» к указанному имени, поэтому нет необходимости указывать полный путь к файлу.

Передача дополнительных аргументов в шаблон


get_template_part( 'template-parts/content', null, array( 'post_type' => 'page' ) );

Этот пример загружает общий шаблон с именем «content.php» из папки «template-parts» в текущем тематическом каталоге и передает дополнительный аргумент ‘post_type’ со значением ‘page’ в шаблон. Аргументы передаются в виде ассоциативного массива в третьем параметре функции get_template_part().

Проверка существования шаблона


if ( get_template_part( 'template-parts/content' ) !== false ) {
    // Шаблон существует
} else {
    // Шаблон не существует
}

Этот пример проверяет существование общего шаблона с именем «content.php» из папки «template-parts» в текущем тематическом каталоге. Функция get_template_part() возвращает false, если шаблон не существует, поэтому можно использовать эту проверку для выполнения определенных действий в зависимости от наличия шаблона.

Использование функции get_template_part() в цикле


while ( have_posts() ) {
    the_post();
    get_template_part( 'template-parts/content', get_post_type() );
}

Этот пример использует функцию get_template_part() внутри цикла, чтобы загрузить специализированный шаблон для каждого типа записи. Функция get_post_type() возвращает тип текущей записи, который затем используется в качестве имени шаблона.

Создание множественных вариантов шаблонов


get_template_part( 'template-parts/content', get_post_format() );

Этот пример загружает специализированный шаблон в зависимости от формата текущей записи. Функция get_post_format() возвращает формат текущей записи, который затем используется в качестве имени шаблона. Например, если формат записи — «gallery», будет загружен шаблон с именем «content-gallery.php».

Вопросы и ответы

Как использовать разные шаблоны для разных страниц?

Функция get_template_part() позволяет загружать разные шаблоны для разных страниц в WordPress. Для этого необходимо передать в функцию два параметра: $slug и $name.

Параметр $slug — это обязательный параметр, который указывает на общий шаблон. Например, если у вас есть шаблон с названием «content», то $slug будет равен «content».

Параметр $name — это необязательный параметр, который указывает на специализированный шаблон. Если вы хотите использовать специализированный шаблон с названием «special», то $name будет равен «special».

Пример использования функции get_template_part() для загрузки шаблона «content-special.php»:


get_template_part( 'content', 'special' );

Как изменить путь к файлу шаблона?

По умолчанию, функция get_template_part() ищет шаблоны в папке текущей темы. Вы можете изменить путь к файлу шаблона, указав его полный путь от корневой директории WordPress.

Пример использования функции get_template_part() для загрузки шаблона «template-parts/content-special.php» из папки «template-parts» в корневой директории WordPress:


get_template_part( 'template-parts/content', 'special' );

Как использовать шаблон только для определенного типа записи?

Вы можете использовать функцию get_template_part() для загрузки шаблона только для определенного типа записи. Для этого необходимо указать название типа записи в параметре $slug.

Пример использования функции get_template_part() для загрузки шаблона «content-special.php» только для типа записи «portfolio»:


get_template_part( 'content', 'special', array( 'post_type' => 'portfolio' ) );

Как использовать шаблон только для определенной категории?

Функция get_template_part() также позволяет загружать шаблон только для определенной категории. Для этого необходимо указать ID или название категории в параметре $slug.

Пример использования функции get_template_part() для загрузки шаблона «content-special.php» только для категории с ID 5:


get_template_part( 'content', 'special', array( 'category' => 5 ) );

Как использовать шаблон только для определенного термина таксономии?

Для использования шаблона только для определенного термина таксономии, вы можете использовать функцию get_template_part() с указанием соответствующего слага и имени специализированного шаблона.

get_template_part( 'taxonomy', 'term' );

Как использовать шаблон только для определенного автора?

Для использования шаблона только для определенного автора, вы можете использовать функцию get_template_part() с указанием соответствующего слага и имени специализированного шаблона.

get_template_part( 'author', 'john' );

Как использовать шаблон только для определенного постформата?

Для использования шаблона только для определенного постформата, вы можете использовать функцию get_template_part() с указанием соответствующего слага и имени специализированного шаблона.

get_template_part( 'content', 'aside' );

Как использовать шаблон только для определенного поста?

Для использования шаблона только для определенного поста, вы можете использовать функцию get_template_part() с указанием соответствующего слага и имени специализированного шаблона.

get_template_part( 'single', 'post' );

Функция get_template_part() в WordPress позволяет загружать части шаблона в основной шаблон. Она полезна для создания переиспользуемых компонентов и упрощает организацию кода. Вы можете использовать эту функцию для загрузки шаблонов только для определенных терминов таксономии, авторов, постформатов или постов. Если указанный шаблон не существует, функция вернет false. В противном случае, она вернет void.

Связанные элементы

  • Функция get_header(): Подключает шаблон заголовка сайта.
  • Функция get_footer(): Подключает шаблон подвала сайта.
  • Функция get_sidebar(): Подключает шаблон боковой панели сайта.
  • Функция get_search_form(): Выводит форму поиска.
  • Функция get_template_directory_uri(): Возвращает URI каталога текущей темы.
  • Функция get_stylesheet_uri(): Возвращает URI файла стилей текущей темы.
  • Функция get_post_format(): Возвращает формат записи текущего поста.
  • Хук template_redirect: Вызывается перед выводом шаблона страницы.
  • Хук template_include: Позволяет изменить путь к файлу шаблона перед его подключением.
  • Класс WP_Query: Используется для выполнения запросов к базе данных WordPress.
Обсуждение