函数原型
get_template_hierarchy( string $slug, boolean $is_custom = false, string $template_prefix = ” ): string[]
函数描述
Gets the template hierarchy for the given template slug to be created.
是否弃用
未弃用
函数参数
-
$slug
string
Required - The template slug to be created.
-
$is_custom
boolean
Optional - Indicates if a template is custom or part of the template hierarchy.
Default:
false -
$template_prefix
string
Optional - The template prefix for the created template.
Used to extract the main template type, e.g.
intaxonomy-booksthetaxonomyis extracted.
Default:
''
函数返回值
string[] The template hierarchy.
函数位置
File: wp-includes/block-template-utils.php.
函数源码
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;
};
源码链接
变更日志
| Version | Description |
|---|---|
| 6.1.0 | Introduced. |

