Alert: 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.

_get_block_template_file( string $template_type, string $slug ): array|null

Retrieves the template file from the theme for a given slug.


Parameters

$template_type string Required
'wp_template' or 'wp_template_part'.
$slug string Required
Template slug.

Top ↑

Return

array|null Array with template metadata if $template_type is one of 'wp_template' or 'wp_template_part'.
null otherwise.

  • slug string
    Template slug.
  • path string
    Template file path.
  • theme string
    Theme slug.
  • type string
    Template type.
  • area string
    Template area. Only for 'wp_template_part'.
  • title string
    Optional. Template title.
  • postTypes string[]
    Optional. List of post types that the template supports. Only for 'wp_template'.


Top ↑

Source

File: wp-includes/block-template-utils.php. View all references

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 ( 'wp_template' === $template_type ) {
				return _add_block_template_info( $new_template_item );
			}

			return $new_template_item;
		}
	}

	return null;
}


Top ↑

Changelog

Changelog
Version Description
5.9.0 Introduced.

Top ↑

User Contributed Notes

You must log in before being able to contribute a note or feedback.