_flatten_blocks()
Returns an array containing the references of the passed blocks and their inner blocks.
Internal function — this function is designed to be used by the kernel itself. It is not recommended to use this function in your code.
No Hooks.
Returns
Array. block references to the passed blocks and their inner blocks.
Usage
_flatten_blocks( $blocks );
- $blocks(array) (required) (passed by reference — &)
- array of blocks.
Changelog
| Since 5.9.0 | Introduced. |
_flatten_blocks() flatten blocks code WP 6.9.1
function _flatten_blocks( &$blocks ) {
$all_blocks = array();
$queue = array();
foreach ( $blocks as &$block ) {
$queue[] = &$block;
}
while ( count( $queue ) > 0 ) {
$block = &$queue[0];
array_shift( $queue );
$all_blocks[] = &$block;
if ( ! empty( $block['innerBlocks'] ) ) {
foreach ( $block['innerBlocks'] as &$inner_block ) {
$queue[] = &$inner_block;
}
}
}
return $all_blocks;
}