在日常的主题及插件开发中,尝尝需要将插件/主题的想要菜单放在wordpress后台对应的位置,尤其对一些主题增加一些快捷的入口,方便便捷。
一、后台增加主菜单add_menu_page
后台增加主菜单 add_menu_page
add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );;
参数解释:
$page_title: (字符串,必须)菜单页面标题,即显示在标题栏的标题
$menu_title: (字符串,必须)菜单标题,即菜单显示的问题
$capability:(字符串,必须)权限,即向哪些用户显示此菜单
$menu_slug:(字符串,必须)显示在uri地址栏里的页面名称,默认可为空,类似?page=custompage
$function:回调方法的名称
$icon_url:(可选)菜单图标url
$position:(可选)菜单显示顺序
示例代码:
add_action('admin_menu','register_custom_menu_page');
function register_custom_menu_page(){
add_menu_page('顶级菜单标题','顶级菜单名称','administrator','custompage','custom_menu_page',plugins_url('myplugin/images/icon.png'),6);
}
function custom_menu_page(){
echo '实例页面'; //可以写插件的配置页面或者介绍之类
}
二、增加子菜单到现有系统菜单
方式一:
add_dashboard_page($page_title, $menu_title, $capability, $menu_slug, $function);//增加子菜单到“仪表盘”
add_users_page($page_title, $menu_title, $capability, $menu_slug, $function);//增加子菜单到“用户”
add_plugins_page($page_title, $menu_title, $capability, $menu_slug, $function);//增加子菜单到“插件”
add_comments_page($page_title, $menu_title, $capability, $menu_slug, $function);//增加子菜单到“评论”
add_media_page($page_title, $menu_title, $capability, $menu_slug, $function);//增加子菜单到“媒体”
add_posts_page($page_title, $menu_title, $capability, $menu_slug, $function);//增加子菜单到“日志”
add_pages_page($page_title, $menu_title, $capability, $menu_slug, $function);//增加子菜单到“页面”
add_theme_page($page_title, $menu_title, $capability, $menu_slug, $function);//增加子菜单到“外观”
add_options_page($page_title, $menu_title, $capability, $menu_slug, $function);//增加子菜单到“设置”
add_links_page($page_title, $menu_title, $capability, $menu_slug, $function);//增加子菜单到“链接”
该方式语法与add_menu_page语法完全相同,不再赘述。但仅可以增加子菜单到对应系统内置的菜单,无法为自定义菜单增加子菜单。
第二种方式:add_submenu_page
add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function );
参数解释:
$parent_slug:父菜单名称,必选。
$page_title: (字符串,必须)菜单页面标题,即显示在标题栏的标题
$menu_title: (字符串,必须)菜单标题,即菜单显示的问题
$capability:(字符串,必须)权限,即向哪些用户显示此菜单
$menu_slug:(字符串,必须)显示在uri地址栏里的页面名称,默认可为空,类似?page=custompage
$function:回调方法的名称
示例代码如下:
add_submenu_page(‘index.php’, … );//在仪表盘添加子菜单
add_submenu_page(‘edit.php’, … );//在文章处添加子菜单
add_submenu_page(‘upload.php’, … );//在媒体处添加子菜单
add_submenu_page(‘link-manager.php’, … );//在链接处添加子菜单
add_submenu_page(‘edit.php?post_type=page’, … );//在页面处添加子菜单add_submenu_page(‘edit-comments.php’, … );//在评论处添加子菜单
add_submenu_page(‘edit.php?post_type=your_post_type’,…)//在你自定义文章类型处添加子菜单
add_submenu_page(‘themes.php’, … );//在外观处添加子菜单
add_submenu_page(‘plugins.php’, … );//在插件处添加子菜单
add_submenu_page(‘users.php’, … );//在用户处添加子菜单
add_submenu_page(‘tools.php’, … );//在工具处添加子菜单
add_submenu_page(‘options-general.php’, … );//在设置处添加子菜单
三、增加子菜单到自定义菜单
add_action(‘admin_menu’,‘register_custom_menu_page’);
function register_custom_menu_page(){
add_menu_page(‘顶级菜单标题’,‘顶级菜单名称’,‘administrator’,‘parent_menu’,//父菜单的slug,需要在增加子菜单时调用
‘custom_menu_page’,’’,70);
add_submenu_page(‘parent_menu’,// 父菜单的slug,标识该子菜单归属哪个父菜单
‘用户菜单标题’,‘用户菜单名称’,‘administrator’,‘sub_menu’,‘custom_users_page’);
}