menu_page_url( string $menu_slug, bool $echo = true )

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

Description

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

Parameters

$menu_slug

(string) (Required) The slug name to refer to this menu by (should be unique for this menu).

$echo

(bool) (Optional) Whether or not to echo the URL.

Default value: true

Return

(string) The menu page URL.

Source

File: wp-admin/includes/plugin.php

function menu_page_url( $menu_slug, $echo = 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 ( $echo ) {
		echo $url;
	}

	return $url;
}

Changelog

Version Description
3.0.0 Introduced.

© 2003–2021 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/menu_page_url