From 382c01d8485ffcef91e4b865b61927b4a4e8368e Mon Sep 17 00:00:00 2001 From: Bernhard Reiter Date: Fri, 17 Nov 2023 07:10:21 +0000 Subject: [PATCH] Block Hooks: Expose serialized template content to filter. The recently introduced Block Hooks API exposes a filter (`hooked_block_types`) which is given a `$context` argument, among others. If the filter is called on a block that's part of a template or template part, `$context` is set to the corresponding `WP_Block_Template` object. However, that object's `$content` property is currently ''not'' exposed to the filter. This changeset amends that shortcoming. This is useful for callbacks that might want to detect the presence of a serialized block instance (or potentially in the future utilize the HTML API) to restrict where the block is injected (before the template is rendered). Addressing this also achieves parity with the structure of `$context` when it represents a pattern (where pattern serialized content is present). Props nerrad. Fixes #59882. Built from https://develop.svn.wordpress.org/trunk@57118 git-svn-id: http://core.svn.wordpress.org/trunk@56629 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/block-template-utils.php | 4 ++-- wp-includes/version.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/wp-includes/block-template-utils.php b/wp-includes/block-template-utils.php index a4e54432d2..265758b922 100644 --- a/wp-includes/block-template-utils.php +++ b/wp-includes/block-template-utils.php @@ -518,12 +518,12 @@ function _remove_theme_attribute_from_template_part_block( &$block ) { */ 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 = get_stylesheet(); $template = new WP_Block_Template(); $template->id = $theme . '//' . $template_file['slug']; $template->theme = $theme; + $template->content = file_get_contents( $template_file['path'] ); $template->slug = $template_file['slug']; $template->source = 'theme'; $template->type = $template_type; @@ -554,7 +554,7 @@ function _build_block_template_result_from_file( $template_file, $template_type $before_block_visitor = make_before_block_visitor( $hooked_blocks, $template ); $after_block_visitor = make_after_block_visitor( $hooked_blocks, $template ); } - $blocks = parse_blocks( $template_content ); + $blocks = parse_blocks( $template->content ); $template->content = traverse_and_serialize_blocks( $blocks, $before_block_visitor, $after_block_visitor ); return $template; diff --git a/wp-includes/version.php b/wp-includes/version.php index b7029f762b..f1f26c808e 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.5-alpha-57116'; +$wp_version = '6.5-alpha-57118'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.