wpseek.com
A WordPress-centric search engine for devs and theme authors
insert_hooked_blocks_into_rest_response › WordPress Function
Since6.6.0
Deprecatedn/a
› insert_hooked_blocks_into_rest_response ( $response, $post )
Parameters: (2) |
|
Returns: |
|
Defined at: |
|
Codex: | |
Change Log: |
|
Hooks into the REST API response for the Posts endpoint and adds the first and last inner blocks.
Source
function insert_hooked_blocks_into_rest_response( $response, $post ) { if ( empty( $response->data['content']['raw'] ) ) { 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, ); } if ( 'wp_navigation' === $post->post_type ) { $wrapper_block_type = 'core/navigation'; } elseif ( 'wp_block' === $post->post_type ) { $wrapper_block_type = 'core/block'; } else { $wrapper_block_type = 'core/post-content'; } $content = get_comment_delimited_block_content( $wrapper_block_type, $attributes, $response->data['content']['raw'] ); $content = apply_block_hooks_to_content( $content, $post, 'insert_hooked_blocks_and_set_ignored_hooked_blocks_metadata' ); // Remove mock block wrapper. $content = remove_serialized_parent_block( $content ); $response->data['content']['raw'] = $content; // 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' ); if ( false !== $priority ) { remove_filter( 'the_content', 'apply_block_hooks_to_content', $priority ); } /** This filter is documented in wp-includes/post-template.php */ $response->data['content']['rendered'] = apply_filters( 'the_content', $content ); // Restore the filter if it was set initially. if ( false !== $priority ) { add_filter( 'the_content', 'apply_block_hooks_to_content', $priority ); } return $response; }