On this page
_build_block_template_result_from_file( array $template_file, string $template_type ): WP_Block_Template
This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.
Builds a unified template object based on a theme file.
Parameters
$template_filearray Required-
Theme file.
$template_typestring Required-
'wp_template'or'wp_template_part'.
Return
WP_Block_Template Template.
Source
File: wp-includes/block-template-utils.php. View all references
function _build_block_template_result_from_file( $template_file, $template_type ) {
$default_template_types = get_default_block_template_types();
$template_content = file_get_contents( $template_file['path'] );
$theme = wp_get_theme()->get_stylesheet();
$template = new WP_Block_Template();
$template->id = $theme . '//' . $template_file['slug'];
$template->theme = $theme;
$template->content = _inject_theme_attribute_in_block_template_content( $template_content );
$template->slug = $template_file['slug'];
$template->source = 'theme';
$template->type = $template_type;
$template->title = ! empty( $template_file['title'] ) ? $template_file['title'] : $template_file['slug'];
$template->status = 'publish';
$template->has_theme_file = true;
$template->is_custom = true;
if ( 'wp_template' === $template_type && isset( $default_template_types[ $template_file['slug'] ] ) ) {
$template->description = $default_template_types[ $template_file['slug'] ]['description'];
$template->title = $default_template_types[ $template_file['slug'] ]['title'];
$template->is_custom = false;
}
if ( 'wp_template' === $template_type && isset( $template_file['postTypes'] ) ) {
$template->post_types = $template_file['postTypes'];
}
if ( 'wp_template_part' === $template_type && isset( $template_file['area'] ) ) {
$template->area = $template_file['area'];
}
return $template;
}
Related
Uses
| Uses | Description |
|---|---|
| _inject_theme_attribute_in_block_template_content() wp-includes/block-template-utils.php | Parses wp_template content and injects the active theme’s stylesheet as a theme attribute into each wp_template_part |
| get_default_block_template_types() wp-includes/block-template-utils.php | Returns a filtered list of default template types, containing their localized titles and descriptions. |
| WP_Theme::get_stylesheet() wp-includes/class-wp-theme.php | Returns the directory name of the theme’s “stylesheet” files, inside the theme root. |
| wp_get_theme() wp-includes/theme.php | Gets a WP_Theme object for a theme. |
Used By
| Used By | Description |
|---|---|
| get_block_file_template() wp-includes/block-template-utils.php | Retrieves a unified template object based on a theme file. |
| get_block_templates() wp-includes/block-template-utils.php | Retrieves a list of unified template objects based on a query. |
Changelog
| Version | Description |
|---|---|
| 5.9.0 | Introduced. |
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/_build_block_template_result_from_file