set_ignored_hooked_blocks_metadata()
Adds a list of hooked block types to an anchor block's ignored hooked block types.
This function is meant for internal use only.
Internal function — this function is designed to be used by the kernel itself. It is not recommended to use this function in your code.
Hooks from the function
Returns
String. Empty string.
Usage
set_ignored_hooked_blocks_metadata( $parsed_anchor_block, $relative_position, $hooked_blocks, $context );
- $parsed_anchor_block(array) (required) (passed by reference — &)
- The anchor block, in parsed block array format.
- $relative_position(string) (required)
- The relative position of the hooked blocks. Can be one of
'before','after','first_child', or'last_child'. - $hooked_blocks(array) (required)
- An array of hooked block types, grouped by anchor block and relative position.
- $context(WP_Block_Template|WP_Post|array) (required)
- The block template, template part, or pattern that the anchor block belongs to.
Changelog
| Since 6.5.0 | Introduced. |
set_ignored_hooked_blocks_metadata() set ignored hooked blocks metadata code WP 7.0
function set_ignored_hooked_blocks_metadata( &$parsed_anchor_block, $relative_position, $hooked_blocks, $context ) {
$anchor_block_type = $parsed_anchor_block['blockName'];
$hooked_block_types = isset( $anchor_block_type, $hooked_blocks[ $anchor_block_type ][ $relative_position ] )
? $hooked_blocks[ $anchor_block_type ][ $relative_position ]
: array();
/** This filter is documented in wp-includes/blocks.php */
$hooked_block_types = apply_filters( 'hooked_block_types', $hooked_block_types, $relative_position, $anchor_block_type, $context );
if ( empty( $hooked_block_types ) ) {
return '';
}
foreach ( $hooked_block_types as $index => $hooked_block_type ) {
$parsed_hooked_block = array(
'blockName' => $hooked_block_type,
'attrs' => array(),
'innerBlocks' => array(),
'innerContent' => array(),
);
/** This filter is documented in wp-includes/blocks.php */
$parsed_hooked_block = apply_filters( 'hooked_block', $parsed_hooked_block, $hooked_block_type, $relative_position, $parsed_anchor_block, $context );
/** This filter is documented in wp-includes/blocks.php */
$parsed_hooked_block = apply_filters( "hooked_block_{$hooked_block_type}", $parsed_hooked_block, $hooked_block_type, $relative_position, $parsed_anchor_block, $context );
if ( null === $parsed_hooked_block ) {
unset( $hooked_block_types[ $index ] );
}
}
$previously_ignored_hooked_blocks = $parsed_anchor_block['attrs']['metadata']['ignoredHookedBlocks'] ?? array();
$parsed_anchor_block['attrs']['metadata']['ignoredHookedBlocks'] = array_unique(
array_merge(
$previously_ignored_hooked_blocks,
$hooked_block_types
)
);
// Markup for the hooked blocks has already been created (in `insert_hooked_blocks`).
return '';
}