get_query_template() – Retrieve path to a template

You appear to be a bot. Output may be restricted

Description

Retrieve path to a template

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.

Usage

$string = get_query_template( $type, $templates );

Parameters

$type
( string ) required – Filename without extension.
$templates
( string[] ) optional – An optional list of template candidates.

Returns

string Full path to template file.

Source

File name: wordpress/wp-includes/template.php


Lines:

1 to 85 of 85
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 );
}
 

 View on GitHub View on Trac