Parsed: 130523

function get_block_file_template( $id, $template_type = 'wp_template' ) {
  
/**
 * Filters the block template object before the theme file discovery takes place.
 *
 * Return a non-null value to bypass the WordPress theme file discovery.
 *
 * @since 5.9.0
 *
 * @param WP_Block_Template|null $block_template Return block template object to short-circuit the default query,
 *                                               or null to allow WP to run its normal queries.
 * @param string                 $id             Template unique identifier (example: theme_slug//template_slug).
 * @param string                 $template_type  Template type: `'wp_template'` or '`wp_template_part'`.
 */
  $block_template = apply_filters( 'pre_get_block_file_template', null, $id, $template_type );
  if ( ! is_null( $block_template ) ) {
    return $block_template;
  }

  $parts = explode( '//', $id, 2 );
  if ( count( $parts ) < 2 ) {
    
/** This filter is documented in wp-includes/block-template-utils.php */
    return apply_filters( 'get_block_file_template', null, $id, $template_type );
  }
  list( $theme, $slug ) = $parts;

  if ( get_stylesheet() !== $theme ) {
    
/** This filter is documented in wp-includes/block-template-utils.php */
    return apply_filters( 'get_block_file_template', null, $id, $template_type );
  }

  $template_file = _get_block_template_file( $template_type, $slug );
  if ( null === $template_file ) {
    
/** This filter is documented in wp-includes/block-template-utils.php */
    return apply_filters( 'get_block_file_template', null, $id, $template_type );
  }

  $block_template = _build_block_template_result_from_file( $template_file, $template_type );

  
/**
 * Filters the block template object after it has been (potentially) fetched from the theme file.
 *
 * @since 5.9.0
 *
 * @param WP_Block_Template|null $block_template The found block template, or null if there is none.
 * @param string                 $id             Template unique identifier (example: theme_slug//template_slug).
 * @param string                 $template_type  Template type: `'wp_template'` or '`wp_template_part'`.
 */
  return apply_filters( 'get_block_file_template', $block_template, $id, $template_type );
}