Skip to content

Commit ef76060

Browse files
committed
Block Hooks: Apply to synced patterns.
Apply Block Hooks to synced patterns (i.e. `core/block` instances). Props bernhard-reiter, gziolo. Fixes #62704. git-svn-id: https://develop.svn.wordpress.org/trunk@59543 602fd350-edb4-49c9-b593-d223f7449a82
1 parent 816ec5d commit ef76060

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

src/wp-includes/blocks.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1219,6 +1219,8 @@ function update_ignored_hooked_blocks_postmeta( $post ) {
12191219

12201220
if ( 'wp_navigation' === $post->post_type ) {
12211221
$wrapper_block_type = 'core/navigation';
1222+
} elseif ( 'wp_block' === $post->post_type ) {
1223+
$wrapper_block_type = 'core/block';
12221224
} else {
12231225
$wrapper_block_type = 'core/post-content';
12241226
}
@@ -1291,7 +1293,7 @@ function insert_hooked_blocks_and_set_ignored_hooked_blocks_metadata( &$parsed_a
12911293
* @return WP_REST_Response The response object.
12921294
*/
12931295
function insert_hooked_blocks_into_rest_response( $response, $post ) {
1294-
if ( empty( $response->data['content']['raw'] ) || empty( $response->data['content']['rendered'] ) ) {
1296+
if ( empty( $response->data['content']['raw'] ) ) {
12951297
return $response;
12961298
}
12971299

@@ -1306,6 +1308,8 @@ function insert_hooked_blocks_into_rest_response( $response, $post ) {
13061308

13071309
if ( 'wp_navigation' === $post->post_type ) {
13081310
$wrapper_block_type = 'core/navigation';
1311+
} elseif ( 'wp_block' === $post->post_type ) {
1312+
$wrapper_block_type = 'core/block';
13091313
} else {
13101314
$wrapper_block_type = 'core/post-content';
13111315
}
@@ -1327,6 +1331,11 @@ function insert_hooked_blocks_into_rest_response( $response, $post ) {
13271331

13281332
$response->data['content']['raw'] = $content;
13291333

1334+
// If the rendered content was previously empty, we leave it like that.
1335+
if ( empty( $response->data['content']['rendered'] ) ) {
1336+
return $response;
1337+
}
1338+
13301339
// `apply_block_hooks_to_content` is called above. Ensure it is not called again as a filter.
13311340
$priority = has_filter( 'the_content', 'apply_block_hooks_to_content' );
13321341
if ( false !== $priority ) {

src/wp-includes/default-filters.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -760,14 +760,16 @@
760760
add_filter( 'rest_pre_insert_wp_template', 'inject_ignored_hooked_blocks_metadata_attributes' );
761761
add_filter( 'rest_pre_insert_wp_template_part', 'inject_ignored_hooked_blocks_metadata_attributes' );
762762

763-
// Update ignoredHookedBlocks postmeta for wp_navigation post type.
763+
// Update ignoredHookedBlocks postmeta for some post types.
764764
add_filter( 'rest_pre_insert_page', 'update_ignored_hooked_blocks_postmeta' );
765765
add_filter( 'rest_pre_insert_post', 'update_ignored_hooked_blocks_postmeta' );
766+
add_filter( 'rest_pre_insert_wp_block', 'update_ignored_hooked_blocks_postmeta' );
766767
add_filter( 'rest_pre_insert_wp_navigation', 'update_ignored_hooked_blocks_postmeta' );
767768

768769
// Inject hooked blocks into the Posts endpoint REST response for some given post types.
769770
add_filter( 'rest_prepare_page', 'insert_hooked_blocks_into_rest_response', 10, 2 );
770771
add_filter( 'rest_prepare_post', 'insert_hooked_blocks_into_rest_response', 10, 2 );
772+
add_filter( 'rest_prepare_wp_block', 'insert_hooked_blocks_into_rest_response', 10, 2 );
771773
add_filter( 'rest_prepare_wp_navigation', 'insert_hooked_blocks_into_rest_response', 10, 2 );
772774

773775
unset( $filter, $action );

0 commit comments

Comments
 (0)