添加WordPress顶级管理菜单其实也是一件非常简单的事情,使用两个WordPress内置函数就可以解决问题,分别是add_menu_page()
和add_action()
。
1.在后台添加一级菜单
add_menu_page添加菜单,但是需要是用add_action挂到admin_menu的挂钩上去。
代码如下
add_action( 'admin_menu', 'register_my_custom_menu_page' ); function register_my_custom_menu_page() { add_menu_page( 'custom menu title', 'custom menu', 'manage_options', 'myplugin/myplugin-admin.php', '', plugins_url( 'myplugin/images/icon.png' ), 6 ); }
之后我们需要创建myplugin-admin.php的文件。
还有一种方式
add_action( 'admin_menu', 'register_my_custom_menu_page' ); function register_my_custom_menu_page(){ add_menu_page( 'custom menu title', 'custom menu', 'manage_options', 'custompage', 'my_custom_menu_page', plugins_url( 'myplugin/images/icon.png' ), 6 ); } function my_custom_menu_page(){ echo "Admin Page Test"; }
函数原型
add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );
$page_title:(字符串) (必须) 这个参数是子菜单的标题,将会显示在浏览器的标题栏,默认为空;
$menu_title:(字符串) (必须) 显示的菜单名称,默认为空;
$capability:(字符串) (必须) 用户权限,定义了具有哪些权限的用户会看到这个子菜单(权限部分请看文章结尾处),默认为空,参照capability;
$menu_slug:(字符串) (必须) 显示在URl上面的菜单名称,默认为空;
$function:返回的方法名称;
$icon_url:(字符串) (可选) 显示的菜单图标,可以使用plugin_dir_url( __FILE__ ),图标宽高为16像素;
$position:(整数) (可选) 显示菜单的位置。常用位置,4或者59或者99。
关于add_menu_page的第三个参数,上面代码中传递了 manage_options 这个值,这个参数值为用户权限,也就是说只当当前已登录的用户具有manage_options这项权限时,才会在后台侧边栏显示你添加的这个菜单。需要提醒的是,这个是权限参数在WordPress 3.0中已被重新定义,之前版本可以往这个参数传递用户等级(1-10),但是如果你使用的是3.0以后的版本,请传递用户权限值。
关于各个用户角色所具有的权限,可以参看这个对应关系表:Capability vs. Role Table,横坐标是用户角色,纵坐标是用户权限,中间蓝色高亮部分为各个角色所拥有的权限,英文也比较好理解,不懂可以找在线翻译。
2.添加二级菜单
添加子菜单主要通过add_submenu_page()函数来实现,这个函数有很多参数,下面我来介绍这几个参数的作用。下面是该函数的原型:
add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function );
$parent_slug
这 个参数为WordPress内置菜单的文件名称或缩略名,这里我们通常采用菜单文件名的方式。传递这个参数,就说明要往这个顶级菜单添加子菜单,以上示例 代码中传递的值为 tools.php ,对应工具顶级菜单,下面提供这个参数的所有值及其对应的顶级菜单:
index.php:控制板
edit.php:文章
upload.php:媒体
link-manager.php:链接
edit.php?post_type=page:页面
edit-comments.php:评论
themes.php:主题
plugins.php:插件
users.php:用户
tools.php:工具
options-general.php:设置
pageslug 自定义的页面slug
$page_title
这个参数是子菜单的标题,将会显示在浏览器的标题栏。
$menu_title
这个是子菜单的名称,将会显示在侧边栏
$capability
用户权限,这个定义了具有哪些权限的用户会看到这个子菜单,具体的参数值,可以参考上面第一部分的顶级菜单的说明。
$menu_slug
子菜单的缩略名,请使用一个唯一的名称,英文形式。
$function
所有调用的函数名称,通过调用这个函数来显示这个子菜单页面的内容
微信赞赏
支付宝赞赏