WordPress添加后台自定义菜单有三个不同的函数,分别为:
- add_menu_page,添加后台顶级菜单。
- add_submenu_page,添加后台子菜单。
- add_theme_page,添加到后台菜单的“外观”中的菜单。
接下来我们就详细介绍一下这三个函数的用法。
add_menu_page函数
语法:
add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );
参数:
$page_title 页面title标签信息
$menu_title 菜单中显示的标题
$capability 权限
$menu_slug 别名
$function 执行函数
$icon_url 菜单图标url地址
$position 此菜单项在菜单中的位置,警告:如果两个菜单项的位置属性相同,其中一个可能会被覆盖
说明:
对于function参数,这个参数一般是函数名,如果在类中,要调用类的方法,使用array(类名,函数名)这样的形式调用。如果这个参数为空的话,menu_slug参数可以是一个文件路径。
上面函数的position参数,默认的菜单项位置属性如下:
- 2 – Dashboard
- 4 – Separator
- 5 – Posts
- 10 – Media
- 15 – Links
- 20 – Pages
- 25 – Comments
- 59 – Separator
- 60 – Appearance
- 65 – Plugins
- 70 – Users
- 75 – Tools
- 80 – Settings
- 99 – Separator
在实际开发中要避开使用上面这些位置数字,接下来请看实例。
示例:
在主题的functions.php文件中,加入下面的代码。
function test_menu(){
add_menu_page( '自定义wordpress管理后台顶级菜单', '自定义顶级菜单', 'edit_themes', 'test-menu-slug','test_display_menu','',6);
}
function test_display_menu(){
echo '<h1>这是菜单对应的页面或函数</h1><br>';
echo '<h1>本示例由零五网(www.02405.com)提供。</h1>';
}
add_action('admin_menu', 'test_menu');
add_submenu_page函数
语法:
add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function );
参数:
$parent_slug 父级菜单项的别名
$page_title 页面的title信息
$menu_title 菜单标题
$capability 权限
$menu_slug 别名
$function 执行的函数
示例:
在主题的functions.php文件中,加入下面的代码,注意这里的子菜单要加入到上面例子的主菜单中,因此parent_slug中要填写上面例子中的slug。
function test_submenu() {
add_submenu_page( 'test-menu-slug', '自定义wordpress管理后台子菜单', '自定义子菜单', 'edit_themes', 'test-submenu-slug', 'test_display_submenu' );
}
function test_display_submenu() {
echo '<h1>这是菜单对应的页面或函数</h1><br>';
echo '<h1>本示例由零五网(www.02405.com)提供。</h1>';
}
add_action('admin_menu', 'test_submenu');
add_theme_page函数
语法:
add_theme_page( $page_title, $menu_title, $capability, $menu_slug, $function);
参数:
$page_titile title标签的内容
$menu_title 显示在后台左边菜单的标题
$capability 访问这个页面需要的权限
$menu_slug 别名,唯一
$function 执行的函数
说明:
该函数功能及用法与 add_menu_page 相似,不同点在于本函数将菜单添加到 wordpress 后台默认的“外观”主菜单中。
示例:
function test_theme_menu(){
add_theme_page( 'title标题', '菜单标题', 'administrator', 'test-theme-menu','test_display_theme_menu');
}
function test_display_theme_menu(){
echo '<h1>这是菜单对应的页面或函数</h1><br>';
echo '<h1>本示例由零五网(www.02405.com)提供。</h1>';
}
add_action('admin_menu', 'test_theme_menu');