Home » 开发 » wordpress函数之add_menu_page()-添加一个顶级菜页面

wordpress函数之add_menu_page()-添加一个顶级菜页面

本文目录
[隐藏]

给WordPress的后台添加一个顶级菜页面。但是在使用这个函数的时候必须检查用户的权限,否则可能造成不安全因素。

函数原型:

参数

$page_title

(字符串) (必须) 当选择菜单时,该文本将被显示在网页的标题栏中。
默认值: None

$menu_title

(字符串) (必须) 显示的菜单名称,默认为空;显示在wordpress左边的菜单栏中。

$capability

(字符串) (必须) 用户使用这个菜单所需要的权限,定义了具有哪些权限的用户会看到这个子菜单(权限部分请看文章结尾处),默认为空,参照capability;

$menu_slug

(字符串) (必须) 显示在URl上面的菜单名称,默认为空;这个菜单的名称必须唯一。在3.0版本之前,这被称为文件(或处理)参数。如果函数的参数被省略了,这menu_slug应该是PHP文件处理菜单页面内容的显示。

$function

(字符串) (可选) 显示菜单页的页面内容的功能。
默 认值: None. 从技术上讲,函数的参数是可选的,但如果它没有提供,那么WordPress的假设包括PHP文件将生成的管理界面,无需调用一个函数。大多数插件作者选 择把页面生成代码放在主插件文件中的函数中。如果在函数的参数指定,可以使用的menu_slug参数任意字符串。

$icon_url

(字符串) (可选) 该菜单的左侧菜单。
Default: 空字符串
如果你有一个自定义的图像文件,你可以使用 plugin_dir_url( __FILE__ ) 函数来获得你的插件目录的网址,然后添加图像文件名到它。这个图标应该是 20 x 20 像素或更小。
(WP 3.8+) 假如 ‘dashicons-…’, 一个dashicon显示集合https://developer.wordpress.org/resource/dashicons/。例如,默认的 “gear” 符号可以显式地指定 ‘dashicons-admin-generic’。
(WP 3.8+) 假如 ‘data:image/svg+xml;base64…’, 指定的SVG数据图像作为一个CSS背景。
加入是 ‘none’ (以前 ‘div’),图标是一个空的DIV CSS可以更换风格。
假如是 ” (默认值), “gear” Dashicon显示 (和 menu-icon-generic 添加到链接的CSS类)。

$position

(整 数) (可选) 菜单显示的位置,这个菜单应该出现在那个菜单里面。默认情况下,如果省略此参数,则菜单将出现在菜单结构的底部。数字越高,菜单的位置越低。警告:如果两 个菜单项使用相同的位置属性,其中的项目可能被覆盖,所以只有一项显示!使用十进制来代替整型值可以减少冲突的风险,例如 63.3 而不是 63 (Note: Use quotes in code, IE ‘63.3’).
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

返回值

string:
$hookname 在内部用于跟踪输出页面内的全局菜单页面回调 $menu 数组

例子1:添加顶级菜单

添加自定义菜单项WordPress管理菜单,为用户与管理员的能力:

注意:
如果你正在运行“你没有足够的权限来访问这个页面”错误,那么你已经钩得太早了。 该 hook 应该使用 admin_menu。

如果你只想将现有的管理菜单项移到不同的位置,你可以使用 admin_menu 钩子在设置菜单项与他们在全局的当前位置 $menu 和 $submenu 变量(这是数组),并重置它们在其他地方的数组。

这个函数需要一个 ‘capability’ (see Roles and Capabilities) 这将被用来确定页面是否包含在菜单中。连接到处理页面输出的功能必须检查用户是否具有所需的“Capabilities”。

如果您使用的是设置接口来保存数据,并且需要用户以外的管理员,将需要修改通过 hook option_page_capability_{$option_group},在 $option_group 是一样的 option_group 在 register_setting() 。

例子2:添加顶级菜单用于展示未订阅的邮箱

如果你想创建一个次级页面就需要看这里:add_submenu_page()

参考:https://developer.wordpress.org/reference/functions/add_menu_page/

雨田

一个喜欢折腾wordpress的爱好者,希望与大家一起探讨wp技术!