WP_Classic_To_Block_Menu_Converter::convert( WP_Term $menu ): string

Converts a Classic Menu to blocks.


Parameters

$menu WP_Term Required
The Menu term object of the menu to convert.

Top ↑

Return

string the serialized and normalized parsed blocks.


Top ↑

Source

File: wp-includes/class-wp-classic-to-block-menu-converter.php. View all references

public static function convert( $menu ) {

	if ( ! is_nav_menu( $menu ) ) {
		return new WP_Error(
			'invalid_menu',
			__( 'The menu provided is not a valid menu.' )
		);
	}

	$menu_items = wp_get_nav_menu_items( $menu->term_id, array( 'update_post_term_cache' => false ) );

	if ( empty( $menu_items ) ) {
		return array();
	}

	// Set up the $menu_item variables.
	// Adds the class property classes for the current context, if applicable.
	_wp_menu_item_classes_by_context( $menu_items );

	$menu_items_by_parent_id = static::group_by_parent_id( $menu_items );

	$first_menu_item = isset( $menu_items_by_parent_id[0] )
		? $menu_items_by_parent_id[0]
		: array();

	$inner_blocks = static::to_blocks(
		$first_menu_item,
		$menu_items_by_parent_id
	);

	return serialize_blocks( $inner_blocks );
}


Top ↑

Changelog

Changelog
Version Description
6.3.0 Introduced.

Top ↑

User Contributed Notes

You must log in before being able to contribute a note or feedback.