wp-includes/blocks.php:1277Hooks into the REST API response for the core/navigation block 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 ( ! isset( $response->data['content']['raw'] ) || ! isset( $response->data['content']['rendered'] ) ) { return $response; } $attributes = array(); $ignored_hooked_blocks = get_post_meta( $post->ID, '_wp_ignored_hooked_blocks', true ); if ( ! empty( $ignored_hooked_blocks ) ) { $ignored_hooked_blocks = json_decode( $ignored_hooked_blocks, true ); $attributes['metadata'] = array( 'ignoredHookedBlocks' => $ignored_hooked_blocks, ); } $content = get_comment_delimited_block_content( 'core/navigation', $attributes, $response->data['content']['raw'] ); $content = apply_block_hooks_to_content( $content, $post ); // Remove mock Navigation block wrapper. $content = remove_serialized_parent_block( $content ); $response->data['content']['raw'] = $content; /** This filter is documented in wp-includes/post-template.php */ $response->data['content']['rendered'] = apply_filters( 'the_content', $content ); 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.