get_template_part

Срабатывает перед попыткой найти и загрузить часть шаблона
Хук WordPress
INT 5.2.0
WordPress Icon

Описание хука

Хук get_template_part срабатывает перед попыткой найти и загрузить часть шаблона. Он позволяет изменить или определить, какие файлы шаблона должны быть найдены и загружены.

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

do_action( 'get_template_part', $slug, $name, $templates, $args );

Где:

  • $slug (строка) — Имя шаблона.
  • $name (строка) — Имя специализированного шаблона или пустая строка, если такового нет.
  • $templates (массив строк) — Массив файлов шаблонов для поиска в определенном порядке.
  • $args (массив) — Дополнительные аргументы, передаваемые в шаблон.
<?php
/**
 * Загрузка шаблона для отображения постов.
 *
 * @param string $slug Имя шаблона.
 * @param string $name Имя специализированного шаблона или пустая строка, если такового нет.
 * @param array  $templates Массив файлов шаблонов для поиска в определенном порядке.
 * @param array  $args Дополнительные аргументы, передаваемые в шаблон.
 */
do_action( 'get_template_part', $slug, $name, $templates, $args );
?>

В этом примере кода хук get_template_part вызывается с передачей четырех параметров: $slug, $name, $templates и $args. Этот хук позволяет изменить или определить, какие файлы шаблона должны быть найдены и загружены.

  • $slug (строка) — Имя шаблона.
  • $name (строка) — Имя специализированного шаблона или пустая строка, если такового нет.
  • $templates (массив строк) — Массив файлов шаблонов для поиска в определенном порядке.
  • $args (массив) — Дополнительные аргументы, передаваемые в шаблон.

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

Поиск и загрузка шаблона


/**
 * Fires before an attempt is made to locate and load a template part.
 *
 * @param string $slug      The slug name for the generic template.
 * @param string $name      The name of the specialized template or an empty string if there is none.
 * @param array  $templates Array of template files to search for, in order.
 * @param array  $args      Additional arguments passed to the template.
 */
do_action( 'get_template_part', $slug, $name, $templates, $args );

Хук get_template_part срабатывает перед попыткой найти и загрузить часть шаблона. Он позволяет разработчикам изменять поведение поиска и загрузки шаблона.

Изменение аргументов шаблона


/**
 * Fires before an attempt is made to locate and load a template part.
 *
 * @param string $slug      The slug name for the generic template.
 * @param string $name      The name of the specialized template or an empty string if there is none.
 * @param array  $templates Array of template files to search for, in order.
 * @param array  $args      Additional arguments passed to the template.
 */
do_action( 'get_template_part', $slug, $name, $templates, $args );

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

Переопределение шаблона


/**
 * Fires before an attempt is made to locate and load a template part.
 *
 * @param string $slug      The slug name for the generic template.
 * @param string $name      The name of the specialized template or an empty string if there is none.
 * @param array  $templates Array of template files to search for, in order.
 * @param array  $args      Additional arguments passed to the template.
 */
do_action( 'get_template_part', $slug, $name, $templates, $args );

Хук get_template_part позволяет переопределить шаблон, который будет загружен. Можно изменить путь к файлу шаблона или добавить свои собственные шаблоны.

Добавление дополнительных файлов шаблона


/**
 * Fires before an attempt is made to locate and load a template part.
 *
 * @param string $slug      The slug name for the generic template.
 * @param string $name      The name of the specialized template or an empty string if there is none.
 * @param array  $templates Array of template files to search for, in order.
 * @param array  $args      Additional arguments passed to the template.
 */
do_action( 'get_template_part', $slug, $name, $templates, $args );

Хук get_template_part позволяет добавить дополнительные файлы шаблона для поиска и загрузки. Можно указать несколько файлов, которые будут проверяться в порядке указания.

Использование хука в пользовательских темах


/**
 * Fires before an attempt is made to locate and load a template part.
 *
 * @param string $slug      The slug name for the generic template.
 * @param string $name      The name of the specialized template or an empty string if there is none.
 * @param array  $templates Array of template files to search for, in order.
 * @param array  $args      Additional arguments passed to the template.
 */
do_action( 'get_template_part', $slug, $name, $templates, $args );

Хук get_template_part может быть использован в пользовательских темах для изменения поведения поиска и загрузки шаблона. Это позволяет разработчикам создавать более гибкие и настраиваемые темы.

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

Как указать путь к файлу шаблона в get_template_part?

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

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

Параметр $name представляет собой название специализированного шаблона, который будет использоваться вместо общего шаблона. Если у вас нет специализированного шаблона, то $name должен быть пустой строкой.

Пример использования функции get_template_part() с указанием пути к файлу шаблона:


get_template_part( 'content', 'single' );

В данном примере будет подключен файл шаблона с именем «content-single.php».

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

По умолчанию, функция get_template_part() ищет файлы шаблонов в следующем порядке: сначала в дочерней теме, затем в родительской теме, и, наконец, в папке «wp-includes». Вы можете изменить этот порядок с помощью фильтра template_include.

Пример использования фильтра template_include для изменения порядка поиска файлов шаблонов:


add_filter( 'template_include', 'custom_template_include' );
function custom_template_include( $template ) {
    if ( is_single() ) {
        $template = locate_template( array( 'single-custom.php' ) );
    }
    return $template;
}

В данном примере, если текущая страница является одиночным постом, то будет искаться файл шаблона с именем «single-custom.php» в первую очередь.

Как использовать условия в get_template_part?

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

Параметр $templates представляет собой массив файлов шаблонов, которые будут проверяться на существование в порядке, указанном в массиве. Первый найденный файл будет подключен.

Пример использования функции get_template_part() с условиями:


get_template_part( 'content', get_post_type() );

В данном примере будет подключен файл шаблона с именем «content-{post_type}.php», где {post_type} — тип текущего поста.

Как создать специализированный шаблон для определенной страницы с помощью get_template_part?

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

Чтобы создать специализированный шаблон, нужно использовать следующий синтаксис:

get_template_part( $slug, $name );

Где:

  • $slug — это имя шаблона, который будет использоваться в качестве основного шаблона.
  • $name — это имя специализированного шаблона, который будет загружен.

Например, если у вас есть основной шаблон с именем «template» и вы хотите создать специализированный шаблон для страницы с идентификатором 123, то вы можете использовать следующий код:

$page_id = 123;
get_template_part( 'template', 'special-' . $page_id );

В этом примере будет загружен шаблон с именем «template-special-123.php».

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

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

get_template_part( $slug, $name, $templates, $args );

Где:

  • $slug — это имя шаблона, который будет использоваться в качестве основного шаблона.
  • $name — это имя специализированного шаблона, который будет загружен.
  • $templates — это массив с именами шаблонов, которые будут использоваться для поиска.
  • $args — это массив с дополнительными аргументами, которые будут переданы в шаблон.

Например, если у вас есть дочерняя тема с именем «child-theme» и вы хотите загрузить шаблон с именем «template» из этой темы, то вы можете использовать следующий код:

get_template_part( 'template', '', array( 'child-theme/template' ) );

В этом примере будет загружен шаблон с именем «template.php» из дочерней темы «child-theme».

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

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

get_template_part( $slug, $name, $templates, $args );

Где:

  • $slug — это имя шаблона, который будет использоваться в качестве основного шаблона.
  • $name — это имя специализированного шаблона, который будет загружен.
  • $templates — это массив с именами шаблонов, которые будут использоваться для поиска.
  • $args — это массив с дополнительными аргументами, которые будут переданы в шаблон.

Например, если у вас есть родительская тема с именем «parent-theme» и вы хотите загрузить шаблон с именем «template» из этой темы, то вы можете использовать следующий код:

get_template_part( 'template', '', array( 'parent-theme/template' ) );

В этом примере будет загружен шаблон с именем «template.php» из родительской темы «parent-theme».

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

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

  • Функция get_template_part(): возвращает содержимое файла шаблона.
  • Функция locate_template(): находит путь к файлу шаблона в теме или плагине.
  • Функция load_template(): загружает файл шаблона.
  • Функция get_query_template(): возвращает путь к файлу шаблона для определенного типа запроса.
  • Функция get_header(): подключает файл шапки сайта.
  • Функция get_footer(): подключает файл подвала сайта.
  • Функция get_sidebar(): подключает файл боковой панели сайта.
  • Функция get_search_form(): возвращает форму поиска.
  • Функция get_template_directory(): возвращает путь к директории текущей темы.
Обсуждение