Функция get_query_template() в WordPress: применение, хуки и примеры

Функция get_query_template() в WordPress

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

Применение функции

Функция útil для получения пути к файлам шаблонов, не прибегая к другим функциям, таким как get_*_template().

Характеристики функции

  • Скорость обработки:
    • Один вызов — 0.000085 сек (очень быстро)
    • 50,000 вызовов — 0.49 сек (по-прежнему быстро)

Хуки функции

Функция использует различные хуки (или фильтры), которые позволяют изменять поведение функции. Вот некоторые из них:

  • (type)_template_hierarchy
  • 404_template_hierarchy
  • archive_template_hierarchy
  • attachment_template_hierarchy
  • author_template_hierarchy
  • category_template_hierarchy
  • date_template_hierarchy
  • embed_template_hierarchy
  • frontpage_template_hierarchy
  • home_template_hierarchy
  • index_template_hierarchy
  • page_template_hierarchy
  • paged_template_hierarchy
  • privacypolicy_template_hierarchy
  • search_template_hierarchy
  • single_template_hierarchy
  • singular_template_hierarchy
  • tag_template_hierarchy
  • taxonomy_template_hierarchy

Возвращаемое значение

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

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

Синтаксис

get_query_template( $type, $templates );
  • $type (string) (обязательный): название файла без расширения.
  • $templates (array) (необя��ательный): список кандидатов для шаблонов. По умолчанию: array().

Примеры

  1. Получение шаблона категории
echo get_query_template( 'category' );
// Возвращает: /home/public_html/wp-content/themes/theme-name/category.php
  1. Указание нестандартного имени шаблона
echo get_query_template( 'foo' );
// Возвращает: /home/public_html/wp-content/themes/theme-name/foo.php
  1. Подключение файла шаблона 404
if ( get_query_template( '404' ) ) {
    include( get_query_template( '404' ) );
}

// То же самое можно записать так:
if ( get_404_template() ) {
    include( get_404_template() );
}
  1. Использование собственного списка шаблонов
echo get_query_template( 'category', [ 'mycat.php', 'mycat2.php' ] );

/* Возвращает:
/home/public_html/wp-content/themes/theme-name/mycat.php
Если такого файла нет, проверится 'mycat2.php':
/home/public_html/wp-content/themes/theme-name/mycat2.php
*/

Код функции

Вот как выглядит код функции get_query_template() в WordPress:


function get_query_template( $type, $templates = array() ) {
$type = preg_replace( '|[^a-z0-9-]+|', '', $type );

if ( empty( $templates ) ) {
    $templates = array( "{$type}.php" );
}

$templates = apply_filters( "{$type}_template_hierarchy", $templates );

$template = locate_template( $templates );

$template = locate_block_template( $template, $type, $templates );

return apply_filters( "{$type}_template", $template, $type, $templates );

}

Заключение

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

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *