添加顶级菜单页面。

原型

add_menu_page( string $page_title, string $menu_title, string $capability, string $menu_slug, callable $function = '', string $icon_url = '', int $position = null )

描述

此功能具有一种功能,可用于确定菜单中是否包含页面。

参数

$page_title (string) (Required) 选择菜单时要在页面的标题标签中显示的文本。

$menu_title (string) (Required) 用于菜单的文本。

$capability (string) (Required) 此菜单显示给用户所需的功能。

$menu_slug (string) (Required) 用于引用此菜单的slug名称。对于此菜单页面应该是唯一的,并且只包含与sanitize_key()兼容的小写字母数字,短划线和下划线字符。

$function (callable) (Optional) 要调用此函数以输出此页面的内容。

$icon_url (string) (Optional) 用于此菜单的图标的URL。 *使用数据URI传递base64编码的SVG,数据URI将着色以匹配颜色方案。这应该以’data:image / svg xml; base64’开头。 *传递Dashicons助手类的名称以使用字体图标,例如’dashicons-图表馅饼’。 *通过’none’将div.wp-menu-image留空,以便可以通过CSS添加图标。

$position (int) (Optional) 应该出现菜单顺序中的位置。

返回值

(string)  结果页面的hook_suffix。

源文件

路径:wp-admin/includes/plugin.php

<?php
...
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 = 'dashicons-admin-generic';
		$icon_class = 'menu-icon-generic ';
	} else {
		$icon_url = set_url_scheme( $icon_url );
		$icon_class = '';
	}
	$new_menu = array( $menu_title, $capability, $menu_slug, $page_title, 'menu-top ' . $icon_class . $hookname, $hookname, $icon_url );
	if ( null === $position ) {
		$menu[] = $new_menu;
	} elseif ( isset( $menu[ "$position" ] ) ) {
	 	$position = $position + substr( base_convert( md5( $menu_slug . $menu_title ), 16, 10 ) , -5 ) * 0.00001;
		$menu[ "$position" ] = $new_menu;
	} else {
		$menu[ $position ] = $new_menu;
	}
	$_registered_pages[$hookname] = true;
	// No parent as top level
	$_parent_pages[$menu_slug] = false;
	return $hookname;
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/add_menu_page/