Skip to content

Commit

Permalink
Add back original gutenberg_get_block_template and rename ours to gut…
Browse files Browse the repository at this point in the history
…enberg_get_block_template_with_fallback
  • Loading branch information
ockham committed Dec 21, 2021
1 parent 275cc3c commit aaabafc
Showing 1 changed file with 71 additions and 0 deletions.
71 changes: 71 additions & 0 deletions lib/compat/wordpress-5.9/block-template-utils.php
Original file line number Diff line number Diff line change
Expand Up @@ -751,6 +751,77 @@ function gutenberg_get_block_template( $id, $template_type = 'wp_template' ) {
return $block_template;
}

$parts = explode( '//', $id, 2 );
if ( count( $parts ) < 2 ) {
return null;
}
list( $theme, $slug ) = $parts;
$wp_query_args = array(
'post_name__in' => array( $slug ),
'post_type' => $template_type,
'post_status' => array( 'auto-draft', 'draft', 'publish', 'trash' ),
'posts_per_page' => 1,
'no_found_rows' => true,
'tax_query' => array(
array(
'taxonomy' => 'wp_theme',
'field' => 'name',
'terms' => $theme,
),
),
);
$template_query = new WP_Query( $wp_query_args );
$posts = $template_query->posts;

if ( count( $posts ) > 0 ) {
$template = _build_block_template_result_from_post( $posts[0] );

if ( ! is_wp_error( $template ) ) {
return $template;
}
}

$block_template = get_block_file_template( $id, $template_type );

/**
* Filters the queried block template object after it's been fetched.
*
* @since 10.8
*
* @param Gutenberg_Block_Template|null $block_template The found block template, or null if there isn't one.
* @param string $id Template unique identifier (example: theme_slug//template_slug).
* @param array $template_type wp_template or wp_template_part.
*/
return apply_filters( 'get_block_template', $block_template, $id, $template_type );
}

/**
* Retrieves a single unified template object using its id. If no template object is found with that ID,
* continues looking for a fallback using the template hierarchy resolution algorithm.
*
* @param string $id Template unique identifier (example: theme_slug//template_slug).
* @param array $template_type wp_template or wp_template_part.
*
* @return Gutenberg_Block_Template|null Template.
*/
function gutenberg_get_block_template_with_fallback( $id, $template_type = 'wp_template' ) {
/**
* Filters the block template object before the query takes place.
*
* Return a non-null value to bypass the WordPress queries.
*
* @since 10.8
*
* @param Gutenberg_Block_Template|null $block_template Return block template object to short-circuit the default query,
* or null to allow WP to run it's normal queries.
* @param string $id Template unique identifier (example: theme_slug//template_slug).
* @param array $template_type wp_template or wp_template_part.
*/
$block_template = apply_filters( 'pre_get_block_template', null, $id, $template_type );
if ( ! is_null( $block_template ) ) {
return $block_template;
}

$parts = explode( '//', $id, 2 );
if ( count( $parts ) < 2 ) {
return null;
Expand Down

0 comments on commit aaabafc

Please sign in to comment.