wp-includes/blocks.php:1477Hooks into the REST API response for the Posts endpoint and adds the first and last inner blocks.
$responseWP_REST_Response$postWP_PostWP_REST_ResponseOne hook fires while insert_hooked_blocks_into_rest_response() runs, in this order:
function insert_hooked_blocks_into_rest_response( $response, $post ) { if ( empty( $response->data['content']['raw'] ) ) { return $response; } $ignored_hooked_blocks_at_root = array(); $response->data['content']['raw'] = apply_block_hooks_to_content_from_post_object( $response->data['content']['raw'], $post, 'insert_hooked_blocks_and_set_ignored_hooked_blocks_metadata', $ignored_hooked_blocks_at_root ); if ( ! empty( $ignored_hooked_blocks_at_root ) ) { $response->data['meta']['_wp_ignored_hooked_blocks'] = wp_json_encode( $ignored_hooked_blocks_at_root ); } // If the rendered content was previously empty, we leave it like that. if ( empty( $response->data['content']['rendered'] ) ) { return $response; } // `apply_block_hooks_to_content` is called above. Ensure it is not called again as a filter. $priority = has_filter( 'the_content', 'apply_block_hooks_to_content_from_post_object' ); if ( false !== $priority ) { remove_filter( 'the_content', 'apply_block_hooks_to_content_from_post_object', $priority ); } /** This filter is documented in wp-includes/post-template.php */ $response->data['content']['rendered'] = apply_filters( 'the_content', $response->data['content']['raw'] ); // Restore the filter if it was set initially. if ( false !== $priority ) { add_filter( 'the_content', 'apply_block_hooks_to_content_from_post_object', $priority ); } return $response;}Introduced in 6.6.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
src/wp-includes/blocks.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.