On this page
get_query_template( string $type, string[] $templates = array() ): string
Retrieves path to a template.
Description
Used to quickly retrieve the path of a template without including the file extension. It will also check the parent theme, if the file exists, with the use of locate_template() . Allows for more generic template location without the use of the other get_*_template() functions.
Parameters
$typestring Required-
Filename without extension.
$templatesstring[] Optional-
An optional list of template candidates.
Default:
array()
Return
string Full path to template file.
Source
File: wp-includes/template.php. View all references
function get_query_template( $type, $templates = array() ) {
$type = preg_replace( '|[^a-z0-9-]+|', '', $type );
if ( empty( $templates ) ) {
$templates = array( "{$type}.php" );
}
/**
* Filters the list of template filenames that are searched for when retrieving a template to use.
*
* The dynamic portion of the hook name, `$type`, refers to the filename -- minus the file
* extension and any non-alphanumeric characters delimiting words -- of the file to load.
* The last element in the array should always be the 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 list of template candidates, in descending order of priority.
*/
$templates = apply_filters( "{$type}_template_hierarchy", $templates );
$template = locate_template( $templates );
$template = locate_block_template( $template, $type, $templates );
/**
* Filters the path of the queried template by type.
*
* The dynamic portion of the hook name, `$type`, refers to the filename -- minus the file
* extension and any non-alphanumeric characters delimiting words -- of the file to load.
* This hook also applies to various types of files loaded as part of the 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 were added.
*
* @param string $template Path to the template. See locate_template().
* @param string $type Sanitized filename without extension.
* @param string[] $templates A list of template candidates, in descending order of priority.
*/
return apply_filters( "{$type}_template", $template, $type, $templates );
}
Hooks
- apply_filters( "{$type}_template",
string $template ,string $type ,string[] $templates ) -
Filters the path of the queried template by type.
- apply_filters( "{$type}_template_hierarchy",
string[] $templates ) -
Filters the list of template filenames that are searched for when retrieving a template to use.
Related
Uses
| Uses | Description |
|---|---|
| locate_block_template() wp-includes/block-template.php | Finds a block template with equal or higher specificity than a given PHP template file. |
| locate_template() wp-includes/template.php | Retrieves the name of the highest priority template file that exists. |
| apply_filters() wp-includes/plugin.php | Calls the callback functions that have been added to a filter hook. |
Used By
| Used By | Description |
|---|---|
| get_privacy_policy_template() wp-includes/template.php | Retrieves path of Privacy Policy page template in current or parent template. |
| get_embed_template() wp-includes/template.php | Retrieves an embed template path in the current or parent template. |
| get_singular_template() wp-includes/template.php | Retrieves the path of the singular template in current or parent template. |
| get_search_template() wp-includes/template.php | Retrieves path of search template in current or parent template. |
| get_single_template() wp-includes/template.php | Retrieves path of single template in current or parent template. Applies to single Posts, single Attachments, and single custom post types. |
| get_attachment_template() wp-includes/template.php | Retrieves path of attachment template in current or parent template. |
| get_index_template() wp-includes/template.php | Retrieves path of index template in current or parent template. |
| get_404_template() wp-includes/template.php | Retrieves path of 404 template in current or parent template. |
| get_archive_template() wp-includes/template.php | Retrieves path of archive template in current or parent template. |
| get_author_template() wp-includes/template.php | Retrieves path of author template in current or parent template. |
| get_category_template() wp-includes/template.php | Retrieves path of category template in current or parent template. |
| get_tag_template() wp-includes/template.php | Retrieves path of tag template in current or parent template. |
| get_taxonomy_template() wp-includes/template.php | Retrieves path of custom taxonomy term template in current or parent template. |
| get_date_template() wp-includes/template.php | Retrieves path of date template in current or parent template. |
| get_home_template() wp-includes/template.php | Retrieves path of home template in current or parent template. |
| get_front_page_template() wp-includes/template.php | Retrieves path of front page template in current or parent template. |
| get_page_template() wp-includes/template.php | Retrieves path of page template in current or parent template. |
| get_paged_template() wp-includes/deprecated.php | Retrieve path of paged template in current or parent template. |
Changelog
| Version | Description |
|---|---|
| 1.5.0 | Introduced. |
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/get_query_template