Products
GG网络技术分享 2025-03-18 16:12 0
开发主题时,往往需要在后台添加一个自定义菜单,以便管理自己的主题,那么要怎么添加对应的菜单呢?往下看
解释:往后台添加主菜单
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:(可选)菜单显示顺序
例子:
这样就可以在wordpress后台添加一个顶级主菜单啦。
函数: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:回调方法的名称
第一种方法:
第二种方法:
在wordpress中关于用户权限有三个词:Role、Capabilities、User Levels分别是角色、权限、用户级别的意思,在前面后台制作教程中创建后台菜单的时候提到过有个参数是填写一个Capabilities,但是很多人填写的是role喝user levels。
在wordpress中role-角色很容易理解,就是管理员、订阅者之类的。对于用户层级,wordpress将用户分成了从0到10共11级别,0为最低,10最高,管理员Administrator就是10级别的,具有最高权限,wordpress默认只有5中角色,我们可以人为的添加一些角色,并给它某一级别的权限。
Capabilities是具体的权限,比如:switch_themes-管理主题、edit_themes编辑主题、edit_posts发表文章。。等等。
在创建自定义文章类型的函数register_post_type中,capability_type参数和上一篇教程的public参数类似,也是一个“父级参数”它的作用只是给Capabilities数组中没有人为具体赋值的参数赋值。
capability_type的默认值是post,所以默认的对于该文章类型的各种权限跟post是一样的,也就是edit_post之类的,但是如果你想单独添加不同的Capabilities,比如你使用register_post_type添加了文章类型book,我希望有的用户能编辑默认的文章,但是不能编辑book,那就需要给book单独添加不同的权限-Capabilities。那就应该具体的配置一下capabilities参数(这个参数是数组)。它的默认值是
edit_post
: 是否能创建和编辑一个具体的文章edit_posts
: Capability that allows editing posts of this post type.是否允许编辑该文章类型的文章edit_others_posts
:是否允许编辑别人发布的文章publish_posts
: Capability to grant publishing of these types of posts.是否允许发布文章read_post
: Capability that controls reading of a specific post of this post type.read_private_posts
: Capability to allow reading of private posts.是否能阅读私有文章delete_post
: Capability that grants the privelege of deleting posts.是否能删除文章。要具体配置权限,先将capability_type设置成book,那么wordpress将自动给这个文章类型添加权限种类,比如edit_post就会对应添加一个edit_book,而Capabilities如果不具体设定的话,它的值会是:
Demand feedback