_flatten_blocks()WP 5.9.0

Returns an array containing the references of the passed blocks and their inner blocks.

Эта функция считается внутренней для использования самим ядром. Не рекомендуется использовать эту функцию в своем коде.

Хуков нет.

Возвращает

Массив. block references to the passed blocks and their inner blocks.

Использование

_flatten_blocks( $blocks );
$blocks(массив) (обязательный) (передается по ссылке — &)
array of blocks.

Список изменений

С версии 5.9.0 Введена.

Код _flatten_blocks() WP 6.0.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;
}