在wp后台在侧边栏,添加一个顶级的菜单。
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)
要引用此菜单的URL地址
$function
(callable)
(Optional)
要为该页输出内容的函数。Default value: ”
$icon_url
(string)
(Optional)
此菜单使用的图标的URL。
-
通过base64编码数据的URI使用SVG技术,将彩色的色彩搭配方案。这应该从 ‘data:image/svg+xml;base64,’.
-
经过一个dashicons辅助类的名称使用字体图标,例如 ‘dashicons-chart-pie’.
-
设置为 none,div.wp-menu-image 所以图标可以通过增加CSS。Default value: ”
$position
(int)
(Optional)
菜单顺序中的位置应该出现。Default value: null
返回值
(string) 返回页面的 hook_suffix。
源代码文件位置:wp-admin/includes/plugin.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; }
使用实例(在模板文件夹中的function.php中添加如下代码):
function show_top_my_custom_menu_page() { add_menu_page( __( '顶级菜单', '顶级菜单' ), '顶级菜单', 'manage_options', 'myplugin/show-top.php', '', plugins_url( 'myplugin/images/icon.png' ), 6 ); } add_action( 'admin_menu', 'show_top_my_custom_menu_page' );
刷新后台: