如何让WordPress插件显示在admin dashboard左侧菜单栏?
WordPress自定义插件添加到后台左侧菜单栏实现方法
要让自定义插件显示在WordPress管理后台左侧菜单栏,核心是使用WordPress官方提供的菜单注册API,按以下步骤实现即可:
第一步:挂载菜单注册逻辑到对应动作钩子
普通站点后台菜单注册使用admin_menu钩子,如果是多站点网络管理后台的菜单,要换成network_admin_menu钩子,不要直接裸调用菜单注册函数,会触发函数未定义错误。
挂载代码示例:add_action( 'admin_menu', 'my_custom_plugin_add_admin_menu' );第二步:调用API注册菜单项
在挂载的回调函数里,根据需求调用对应API:- 要做和「文章」「设置」平级的顶级菜单(也就是截图里要的直接显示在左侧栏的效果),用
add_menu_page()函数 - 要把插件入口挂在现有菜单(比如「工具」「设置」)下当子菜单,用
add_submenu_page()函数
以最常用的顶级菜单为例,
add_menu_page()需要传入的核心参数:- 页面标题:点击菜单进入页面后,浏览器标签显示的标题
- 菜单标题:左侧菜单栏实际显示的文字
- 访问权限:控制哪些用户角色能看到这个菜单,比如管理员用
manage_options,编辑角色用edit_posts - 菜单唯一slug:专属标识,一定要加插件前缀避免和其他插件重名
- 页面渲染回调:点进菜单后输出页面内容的函数
- 菜单图标:推荐直接用WordPress自带的Dashicons类名,也可以传自定义图标URL
- 排序位置:数字越小菜单越靠上,常用参考值:仪表盘2、文章5、媒体10、页面20、评论25、设置80
完整注册代码示例:
function my_custom_plugin_add_admin_menu() { add_menu_page( '自定义插件设置页', // 页面标题 '我的自定义插件', // 左侧菜单显示名 'manage_options', // 仅管理员可见 'my_plugin_unique_slug', // 唯一slug 'my_custom_plugin_render_content', // 内容渲染函数 'dashicons-admin-plugins', // 插件样式图标 66 // 排在评论和设置之间 ); }- 要做和「文章」「设置」平级的顶级菜单(也就是截图里要的直接显示在左侧栏的效果),用
第三步:编写菜单页面的渲染逻辑
记得先做权限二次校验,防止未授权用户通过直接输URL访问页面:function my_custom_plugin_render_content() { // 权限校验 if ( ! current_user_can( 'manage_options' ) ) { wp_die( '你没有访问该页面的权限' ); } ?> <div class="wrap"> <h1>自定义插件管理面板</h1> <p>这里可以放插件的功能表单、操作入口等内容</p> </div> <?php }
常见踩坑提醒:如果需要给插件加二级子菜单,直接在同一个
my_custom_plugin_add_admin_menu回调里调用add_submenu_page()即可,第一个参数传入之前顶级菜单的slug就能绑定归属关系。
参考效果示例:
内容的提问来源于stack exchange,提问作者Carlos Gutierrez
相关产品推荐
相关产品推荐

