_get_block_template_file()
Retrieves the template file from the theme for a given slug.
Internal function — this function is designed to be used by the kernel itself. It is not recommended to use this function in your code.
No Hooks.
Returns
Array|null. Array with template metadata if $template_type is one of 'wp_template' or 'wp_template_part', null otherwise.
Usage
_get_block_template_file( $template_type, $slug );
- $template_type(string) (required)
- Template type. Either 'wp_template' or 'wp_template_part'.
- $slug(string) (required)
- Template slug.
Changelog
| Since 5.9.0 | Introduced. |
_get_block_template_file() get block template file code WP 6.9
function _get_block_template_file( $template_type, $slug ) {
if ( 'wp_template' !== $template_type && 'wp_template_part' !== $template_type ) {
return null;
}
$themes = array(
get_stylesheet() => get_stylesheet_directory(),
get_template() => get_template_directory(),
);
foreach ( $themes as $theme_slug => $theme_dir ) {
$template_base_paths = get_block_theme_folders( $theme_slug );
$file_path = $theme_dir . '/' . $template_base_paths[ $template_type ] . '/' . $slug . '.html';
if ( file_exists( $file_path ) ) {
$new_template_item = array(
'slug' => $slug,
'path' => $file_path,
'theme' => $theme_slug,
'type' => $template_type,
);
if ( 'wp_template_part' === $template_type ) {
return _add_block_template_part_area_info( $new_template_item );
}
// If it's not a `wp_template_part`, it must be a `wp_template`.
return _add_block_template_info( $new_template_item );
}
}
return null;
}