WordPress添加后台自定义菜单有三个不同的函数,分别为:

接下来我们就详细介绍一下这三个函数的用法。

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.codesou.cn)提供。</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.codesou.cn)提供。</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.codesou.cn)提供。</h1>'; 
}   
add_action('admin_menu', 'test_theme_menu');