WP_Navigation_Block_Renderer::get_inner_blocks_html()private staticWP 6.5.0

Returns the html for the inner blocks of the navigation block.

Метод класса: WP_Navigation_Block_Renderer{}

Хуков нет.

Возвращает

Строку. Returns the html for the inner blocks of the navigation block.

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

$result = WP_Navigation_Block_Renderer::get_inner_blocks_html( $attributes, $inner_blocks );
$attributes(массив) (обязательный)
The block attributes.
$inner_blocks(WP_Block_List) (обязательный)
The list of inner blocks.

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

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

Код WP_Navigation_Block_Renderer::get_inner_blocks_html() WP 6.7.1

private static function get_inner_blocks_html( $attributes, $inner_blocks ) {
	$has_submenus   = static::has_submenus( $inner_blocks );
	$is_interactive = static::is_interactive( $attributes, $inner_blocks );

	$style                = static::get_styles( $attributes );
	$class                = static::get_classes( $attributes );
	$container_attributes = get_block_wrapper_attributes(
		array(
			'class' => 'wp-block-navigation__container ' . $class,
			'style' => $style,
		)
	);

	$inner_blocks_html = '';
	$is_list_open      = false;

	foreach ( $inner_blocks as $inner_block ) {
		$inner_block_markup = static::get_markup_for_inner_block( $inner_block );
		$p                  = new WP_HTML_Tag_Processor( $inner_block_markup );
		$is_list_item       = $p->next_tag( 'LI' );

		if ( $is_list_item && ! $is_list_open ) {
			$is_list_open       = true;
			$inner_blocks_html .= sprintf(
				'<ul %1$s>',
				$container_attributes
			);
		}

		if ( ! $is_list_item && $is_list_open ) {
			$is_list_open       = false;
			$inner_blocks_html .= '</ul>';
		}

		$inner_blocks_html .= $inner_block_markup;
	}

	if ( $is_list_open ) {
		$inner_blocks_html .= '</ul>';
	}

	// Add directives to the submenu if needed.
	if ( $has_submenus && $is_interactive ) {
		$tags              = new WP_HTML_Tag_Processor( $inner_blocks_html );
		$inner_blocks_html = block_core_navigation_add_directives_to_submenu( $tags, $attributes );
	}

	return $inner_blocks_html;
}