menu_page_url()WP 3.0.0

Gets the URL to access a particular menu page based on the slug it was registered with.

If the slug hasn't been registered properly, no URL will be returned.

No Hooks.

Return

String. The menu page URL.

Usage

menu_page_url( $menu_slug, $display );
$menu_slug(string) (required)
The slug name to refer to this menu by (should be unique for this menu).
$display(true|false)
Whether or not to display the URL.
Default: true

Notes

  • Global. Array. $_parent_pages

Changelog

Since 3.0.0 Introduced.

menu_page_url() code WP 6.5.2

function menu_page_url( $menu_slug, $display = true ) {
	global $_parent_pages;

	if ( isset( $_parent_pages[ $menu_slug ] ) ) {
		$parent_slug = $_parent_pages[ $menu_slug ];

		if ( $parent_slug && ! isset( $_parent_pages[ $parent_slug ] ) ) {
			$url = admin_url( add_query_arg( 'page', $menu_slug, $parent_slug ) );
		} else {
			$url = admin_url( 'admin.php?page=' . $menu_slug );
		}
	} else {
		$url = '';
	}

	$url = esc_url( $url );

	if ( $display ) {
		echo $url;
	}

	return $url;
}