function add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function = '', $icon_url = '', $position = NULL ) {}

Add a top level menu page
This function takes a capability which will be used to determine whether or not a page is included in the menu.


  • string $page_title: The text to be displayed in the title tags of the page when the menu is selected
  • string $menu_title: The text to be used for the menu
  • string $capability: The capability required for this menu to be displayed to the user.
  • string $menu_slug: The slug name to refer to this menu by (should be unique for this menu)
  • callback $function: The function to be called to output the content for this page.
  • string $icon_url: The url to the icon to be used for this menu
  • int $position: The position in the menu order this one should appear

Return values

returns:The resulting page’s hook_suffix

Source code

function add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function = '', $icon_url = '', $position = NULL ) {

	global $menu, $admin_page_hooks, $_registered_pages, $_parent_pages;

	$menu_slug = plugin_basename( $menu_slug );

	$admin_page_hooks[$menu_slug] = sanitize_title( $menu_title );

	$hookname = get_plugin_page_hookname( $menu_slug, '' );

	if ( !empty( $function ) && !empty( $hookname ) && current_user_can( $capability ) )

		add_action( $hookname, $function );

	if ( empty($icon_url) )

		$icon_url = esc_url( admin_url( 'images/generic.png' ) );

	elseif ( is_ssl() && 0 === strpos($icon_url, 'http://') )

		$icon_url = 'https://' . substr($icon_url, 7);

	$new_menu = array( $menu_title, $capability, $menu_slug, $page_title, 'menu-top ' . $hookname, $hookname, $icon_url );

	if ( null === $position  )

		$menu[] = $new_menu;


		$menu[$position] = $new_menu;

	$_registered_pages[$hookname] = true;

	// No parent as top level

	$_parent_pages[$menu_slug] = false;

	return $hookname;



No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: