添加顶级菜单页面。
原型
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/