1. 首页
  2. WordPress 函数手册

add_menu_page()

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

添加顶级菜单页。
Add a top-level menu page.

目录锚点:#说明#参数#返回#源码#笔记


说明(Description)

此函数具有用于确定菜单中是否包含页面的功能。

连接以处理页面输出的函数必须检查用户是否也具有所需的功能。


参数(Parameters)

参数 类型 必填 说明
$page_title (string) 必需 选择菜单时要在页面标题标记中显示的文本。
$menu_title (string) 必需 用于菜单的文本。
$capability (string) 必需 向用户显示此菜单所需的功能。
$menu_slug (string) 必需 用于引用此菜单的slug名称。对于此菜单页应该是唯一的,并且只包含小写字母数字、破折号和下划线字符,以便与sanitize_key()兼容。
$function (callable) 可选 要调用以输出此页内容的函数。
$icon_url (string) 可选 用于此菜单的图标的URL。*使用数据URI传递base64编码的SVG,该URI将被着色以匹配颜色方案。这应该从’数据:image/svg+xml;base64,’. *传递Dashicons帮助程序类的名称以使用字体图标,例如“Dashicons图表饼图”。*不允许离开分部wp-菜单图像为空,因此可以通过CSS添加图标。
$position (int) 可选 此项在菜单中的显示顺序。

返回(Return)

(string)结果页的hook_后缀。


源码(Source)

/**
 * 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.
 *
 * The function which is hooked in to handle the output of the page must check
 * that the user has the required capability as well.
 *
 * @global array $menu
 * @global array $admin_page_hooks
 * @global array $_registered_pages
 * @global array $_parent_pages
 *
 * @param string $page_title The text to be displayed in the title tags of the page when the menu is selected
 * @param string $menu_title The text to be used for the menu
 * @param string $capability The capability required for this menu to be displayed to the user.
 * @param string $menu_slug The slug name to refer to this menu by (should be unique for this menu)
 * @param callback $function The function to be called to output the content for this page.
 * @param string $icon_url The url to the icon to be used for this menu.
 *     * Pass a base64-encoded SVG using a data URI, which will be colored to match the color scheme.
 *       This should begin with 'data:image/svg+xml;base64,'.
 *     * Pass the name of a Dashicons helper class to use a font icon, e.g. 'dashicons-chart-pie'.
 *     * Pass 'none' to leave div.wp-menu-image empty so an icon can be added via CSS.
 * @param int $position The position in the menu order this one should appear
 *
 * @return string The resulting page's hook_suffix
 */
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;
	else
		$menu[$position] = $new_menu;

	$_registered_pages[$hookname] = true;

	// No parent as top level
	$_parent_pages[$menu_slug] = false;

	return $hookname;
}
更新版本 源码位置 使用 被使用
1.5.0 wp-admin/includes/plugin.php:1286 2 6

笔记(Notes)

实例
如果使用数据URI传递base64编码的SVG,则只有当它具有填充样式属性时,才会对其进行着色以匹配颜色方案。该过程由wp admin/js/svg完成-画家.js.

add_menu_page() 为WP2原创文章,链接:https://www.wp2.cn/functions/add_menu_page/

发表评论

您的电子邮箱地址不会被公开。