get_query_template() WP 1.5.0

Отримує шлях до вказаного шаблонного файлу. Вказується тип запиту: index , category , 404 і т.д.

Використовується для швидкого отримання шляху файлу шаблону, розширення файлу при цьому не потрібно вказувати. Під час пошуку файлу враховується locate_template() ).

Докладніше про те, за яким запитом, який файл може бути підключений читайте в окремій статті: Ієрархія файлів теми (шаблону)

Ця функція може стати в нагоді при використанні 3 способу створення шаблону сторінки.

Працює на основі:
locate_template()
Основа для:
get_page_template()
1 раз – 0.000085 сек
(дуже швидко) | 50000 разів – 0.49 сек
(дуже швидко)

Повертає

Строку. Серверний шлях до файлу шаблону. Якщо файл не вдалося знайти, поверне порожній рядок.

Використання

get_query_template($type, $templates);
$type
(рядок) (обов’язковий)

Назва файлу без розширення (PHP).

Назва може бути будь-якою, але вона повинна містити тільки: строчные буквы лат.алфавита, цифрыі -( [^a-z0-9-] ) – знак _видаляється.

Передбачені типи файлів (дивіться ієрархію файлів ):

  • index
  • 404
  • archive(сюди входить post_type_archive )
  • author
  • category
  • tag
  • taxonomy
  • date
  • home
  • embed
  • frontpage(не front_page )
  • page
  • paged
  • search
  • single
  • singular
  • attachment
$templates
(масив)

Необов’язковий список кандидатів на файл шаблону (вказується назва файлу з розширенням).

Якщо вказати цей параметр, попередній параметр $type буде проігнорований і використовуватиметься лише у фільтрі. Назва файлу буде підбиратися на основі цього параметра, за допомогою функції locate_template() .

За замовчуванням: array()

Приклади

0

#1 Підключимо файл шаблону 404

if ( get_query_template( '404' ) )
	   include (get_query_template ( '404'));

// Теж саме можна записати так:
if ( get_404_template() )
	include( get_404_template() );
0

#2 Що виводить функція

echo get_query_template('category');
// отримаємо: /home/public_html/wp-content/themes/theme-name/category.php

// можна вказати довільну назву і якщо такий файл є
/ / У батьківській / дочірній темі то функція поверне його шлях:
echo get_query_template('foo');
// отримаємо: /home/public_html/wp-content/themes/theme-name/foo.php
0

#3 Спробуємо отримати один із файлів шаблону

Вказавши другий параметр, ми одночасно використовуємо функцію locate_template() і вказуємо тип одержуваного файлу, до якого можуть підключатися плагіни через фільтр:

echo get_query_template('category', array('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
*/

список змін

З версії 1.5.0Введено.

Код get_query_template() WP 6.0.2

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

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

	/**
	 * Filters List of template filenames, що є searched for when retrieving a template to use.
	 *
	 * The dynamic portion of the hook name, `$type`, refers to the filename -- mínus the file
	 * extension and any non-alphanumeric characters delimiting words -- of file to load.
	 * Останній елемент в array повинен бути завжди fallback template for this query type.
	 *
	 * Possible hook names include:
	 *
	 * - `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`
	 *
	 * @ Since 4.7.0
	 *
	 * @param string[] $templates A список віртуальних літератур, в подальшому ордері priority.
	 */
	$templates = apply_filters( "{$type}_template_hierarchy", $templates );

	$template = locate_template($templates);

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

	/**
	 * Filters path of queried template by type.
	 *
	 * The dynamic portion of the hook name, `$type`, refers to the filename -- mínus the file
	 * extension and any non-alphanumeric characters delimiting words -- of file to load.
	 * Цей потік також пристосований до різних типів файлів loaded як частина Template Hierarchy.
	 *
	 * Possible hook names include:
	 *
	 * - `404_template`
	 * - `archive_template`
	 * - `attachment_template`
	 * - `author_template`
	 * - `category_template`
	 * - `date_template`
	 * - `embed_template`
	 * - `frontpage_template`
	 * - `home_template`
	 * - `index_template`
	 * - `page_template`
	 * - `paged_template`
	 * - `privacypolicy_template`
	 * - `search_template`
	 * - `single_template`
	 * - `singular_template`
	 * - `tag_template`
	 * - `taxonomy_template`
	 *
	 * @ Since 1.5.0
	 * @since 4.8.0 The `$type` and `$templates` parameters були added.
	 *
	 * @param string $template Path to the template. See locate_template().
	 * @param string $type Sanitized filename without extension.
	 * @param string[] $templates A список віртуальних літератур, в подальшому ордері priority.
	 */
	return apply_filters( "{$type}_template", $template, $type, $templates);
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *