get_template_hierarchy() – Gets the template hierarchy for the given template slug to be created.
You appear to be a bot. Output may be restricted
Description
Gets the template hierarchy for the given template slug to be created.
Note: Always add index
as the last fallback template.
Usage
$string[] = get_template_hierarchy( $slug, $is_custom, $template_prefix );
Parameters
- $slug
- ( string ) required – The template slug to be created.
- $is_custom
- ( boolean ) optional – Optional. Indicates if a template is custom or part of the template hierarchy. Default false.
- $template_prefix
- ( string ) optional – Optional. The template prefix for the created template. Used to extract the main template type, e.g. in
taxonomy-books
thetaxonomy
is extracted. Default empty string.
Returns
string[] The template hierarchy.
Source
File name: wordpress/wp-includes/block-template-utils.php
Lines:
1 to 53 of 53
function get_template_hierarchy( $slug, $is_custom = false, $template_prefix = '' ) { if ( 'index' === $slug ) { return array( 'index' ); } if ( $is_custom ) { return array( 'page', 'singular', 'index' ); } if ( 'front-page' === $slug ) { return array( 'front-page', 'home', 'index' ); } $template_hierarchy = array( $slug ); // Most default templates don't have `$template_prefix` assigned. if ( $template_prefix ) { list( $type ) = explode( '-', $template_prefix ); // These checks are needed because the `$slug` above is always added. if ( ! in_array( $template_prefix, array( $slug, $type ), true ) ) { $template_hierarchy[] = $template_prefix; } if ( $slug !== $type ) { $template_hierarchy[] = $type; } } // Handle `archive` template. if ( str_starts_with( $slug, 'author' ) || str_starts_with( $slug, 'taxonomy' ) || str_starts_with( $slug, 'category' ) || str_starts_with( $slug, 'tag' ) || 'date' === $slug ) { $template_hierarchy[] = 'archive'; } // Handle `single` template. if ( 'attachment' === $slug ) { $template_hierarchy[] = 'single'; } // Handle `singular` template. if ( str_starts_with( $slug, 'single' ) || str_starts_with( $slug, 'page' ) || 'attachment' === $slug ) { $template_hierarchy[] = 'singular'; } $template_hierarchy[] = 'index'; return $template_hierarchy; };