wp_get_nav_menu_to_edit( int $menu_id ): string|WP_Error

In this article

Returns the menu formatted to edit.

Parameters

$menu_idintoptional
The ID of the menu to format. Default 0.

Return

string|WP_Error The menu formatted to edit or error object on failure.

Source

function wp_get_nav_menu_to_edit( $menu_id = 0 ) {	$menu = wp_get_nav_menu_object( $menu_id );	// If the menu exists, get its items.	if ( is_nav_menu( $menu ) ) {	$menu_items = wp_get_nav_menu_items( $menu->term_id, array( 'post_status' => 'any' ) );	$result = '<div id="menu-instructions" class="post-body-plain';	$result .= ( ! empty( $menu_items ) ) ? ' menu-instructions-inactive">' : '">';	$result .= '<p>' . __( 'Add menu items from the column on the left.' ) . '</p>';	$result .= '</div>';	if ( empty( $menu_items ) ) {	return $result . ' <ul class="menu" id="menu-to-edit"> </ul>';	}	/** * Filters the Walker class used when adding nav menu items. * * @since 3.0.0 * * @param string $class The walker class to use. Default 'Walker_Nav_Menu_Edit'. * @param int $menu_id ID of the menu being rendered. */	$walker_class_name = apply_filters( 'wp_edit_nav_menu_walker', 'Walker_Nav_Menu_Edit', $menu_id );	if ( class_exists( $walker_class_name ) ) {	$walker = new $walker_class_name();	} else {	return new WP_Error(	'menu_walker_not_exist',	sprintf(	/* translators: %s: Walker class name. */	__( 'The Walker class named %s does not exist.' ),	'<strong>' . $walker_class_name . '</strong>'	)	);	}	$some_pending_menu_items = false;	$some_invalid_menu_items = false;	foreach ( (array) $menu_items as $menu_item ) {	if ( isset( $menu_item->post_status ) && 'draft' === $menu_item->post_status ) {	$some_pending_menu_items = true;	}	if ( ! empty( $menu_item->_invalid ) ) {	$some_invalid_menu_items = true;	}	}	if ( $some_pending_menu_items ) {	$message = __( 'Click Save Menu to make pending menu items public.' );	$notice_args = array(	'type' => 'info',	'additional_classes' => array( 'notice-alt', 'inline' ),	);	$result .= wp_get_admin_notice( $message, $notice_args );	}	if ( $some_invalid_menu_items ) {	$message = __( 'There are some invalid menu items. Please check or delete them.' );	$notice_args = array(	'type' => 'error',	'additional_classes' => array( 'notice-alt', 'inline' ),	);	$result .= wp_get_admin_notice( $message, $notice_args );	}	$result .= '<ul class="menu" id="menu-to-edit"> ';	$result .= walk_nav_menu_tree(	array_map( 'wp_setup_nav_menu_item', $menu_items ),	0,	(object) array( 'walker' => $walker )	);	$result .= ' </ul> ';	return $result;	} elseif ( is_wp_error( $menu ) ) {	return $menu;	} } 

Hooks

apply_filters( ‘wp_edit_nav_menu_walker’, string $class, int $menu_id )

Filters the Walker class used when adding nav menu items.

Changelog

VersionDescription
3.0.0Introduced.

User Contributed Notes

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