wordpress后台增加菜单

添加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
所有调用的函数名称,通过调用这个函数来显示这个子菜单页面的内容

赞赏

微信赞赏支付宝赞赏

发表评论

您的电子邮箱地址不会被公开。