block_core_navigation_mock_parsed_block()WP 6.5.0

Mock a parsed block for the Navigation block given its inner blocks and the wp_navigation post object. The wp_navigation post's _wp_ignored_hooked_blocks meta is queried to add the metadata.ignoredHookedBlocks attribute.

Хуков нет.

Возвращает

Массив. the normalized parsed blocks.

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

block_core_navigation_mock_parsed_block( $inner_blocks, $post );
$inner_blocks(массив) (обязательный)
Parsed inner blocks of a Navigation block.
$post(WP_Post) (обязательный)
wp_navigation post object corresponding to the block.

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

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

Код block_core_navigation_mock_parsed_block() WP 6.7.1

function block_core_navigation_mock_parsed_block( $inner_blocks, $post ) {
	$attributes = array();

	if ( isset( $post->ID ) ) {
		$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,
			);
		}
	}

	$mock_anchor_parent_block = array(
		'blockName'    => 'core/navigation',
		'attrs'        => $attributes,
		'innerBlocks'  => $inner_blocks,
		'innerContent' => array_fill( 0, count( $inner_blocks ), null ),
	);

	return $mock_anchor_parent_block;
}