讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在 WordPress 后台添加无跳转链接的纯功能型管理菜单项

千浩酱_2000

千浩酱_2000

发布时间:2026-06-23 21:26:29

|

940人浏览过

|

来源于php中文网

原创

如何在 WordPress 后台添加无跳转链接的纯功能型管理菜单项

本文介绍如何使用 add_menu_page() 创建一个不触发页面跳转、仅作为触发器(如弹出模态框)的 wordpress 后台顶级菜单项,并通过技巧隐藏其默认子页面,实现干净、可扩展的管理入口。

本文介绍如何使用 add_menu_page() 创建一个不触发页面跳转、仅作为触发器(如弹出模态框)的 wordpress 后台顶级菜单项,并通过技巧隐藏其默认子页面,实现干净、可扩展的管理入口。

在 WordPress 后台中,默认情况下 add_menu_page() 要求传入一个回调函数(用于渲染页面内容),且点击菜单会跳转至对应 ?page=xxx 地址。但若你仅需一个图标+文字的入口来触发 JavaScript 行为(例如打开自定义模态框、调用 REST API 或启动前端 UI),并不希望发生页面重载或显示空白/错误页面,可通过以下方式实现“无链接”效果:

✅ 核心思路:空回调 + 隐藏默认子菜单

关键在于两点:

Adwords
Adwords

营销文案助手。标题公式(100个)、正文写作、AIDA框架、痛点挖掘、客户证言、落地页文案。Copywriting with 100 headline formulas, body copy, AIDA framework, pain points, testimonials.

下载
  1. 将第 5 个参数($callback)设为 false 或空字符串:WordPress 允许传入 false,此时点击菜单不会渲染任何 PHP 页面,但仍会保留 URL 参数(如 ?page=belo_main)——这恰好可用于前端监听;
  2. 移除自动生成的默认子菜单项:WordPress 会为顶级菜单自动添加一个同 slug 的首项子菜单(即“首页”),需主动移除以保持界面整洁。

以下是完整、可直接复用的代码示例:

add_action('admin_menu', 'register_belo_admin_menu');

function register_belo_admin_menu() {
    // 注册顶级菜单:无回调函数(false),不加载任何PHP页面
    add_menu_page(
        'BELO Dashboard',   // 页面 title(浏览器标签显示)
        'BELO',             // 菜单名称(侧边栏显示)
        'manage_options',   // 用户权限能力
        'belo_main',        // 唯一 menu slug
        false,              // 关键:不执行任何PHP渲染逻辑
        'dashicons-admin-generic', // 可选图标
        6                   // 菜单排序位置(数字越小越靠前)
    );

    // 可选:添加真实功能子菜单(如设置页、日志页等)
    add_submenu_page(
        'belo_main',
        'Settings',
        'Settings',
        'manage_options',
        'belo-settings',
        'belo_settings_callback'
    );

    // 注意:不要为 'belo_main' 添加同 slug 的子菜单,否则会重复出现
}

// 移除 WordPress 自动创建的 'belo_main' 默认子菜单项
function belo_remove_default_submenu() {
    remove_submenu_page('belo_main', 'belo_main');
}
add_action('admin_menu', 'belo_remove_default_submenu', 11); // 稍晚于注册时机执行

// 示例:子菜单页面渲染函数(按需实现)
function belo_settings_callback() {
    echo '<div class="wrap"><h1>BELO Settings</h1><p>Configure your plugin here.</p></div>';
}

// ✅ 前端增强:监听 URL 并触发模态框(建议放在 admin_enqueue_scripts 中)
function belo_enqueue_admin_scripts($hook) {
    if ('toplevel_page_belo_main' === $hook) {
        wp_enqueue_script('belo-modal-trigger', plugin_dir_url(__FILE__) . 'js/modal-trigger.js', ['jquery'], '1.0', true);
    }
}
add_action('admin_enqueue_scripts', 'belo_enqueue_admin_scripts');

⚠️ 注意事项与最佳实践

  • 权限控制务必严谨:'manage_options' 适用于管理员,如需更细粒度权限,请使用 current_user_can() 在前端 JS 中二次校验;
  • 避免 submenu_file 过滤器误用:原答案中使用的 submenu_file filter 属于较老方案,易与其他插件冲突;推荐改用 admin_menu 钩子中直接 remove_submenu_page()(如上所示),更稳定可控;
  • URL 监听建议:可在 modal-trigger.js 中监听 window.location.search.includes('page=belo_main'),随后 e.preventDefault() 并展示模态框;
  • 图标支持:推荐使用 Dashicons(如 'dashicons-admin-generic')或 SVG 自定义图标,提升专业感;
  • 兼容性:该方法兼容 WordPress 5.0+,包括经典编辑器与 Gutenberg 管理后台。

通过以上方式,你将获得一个纯粹的功能入口——它不跳转、不刷新、不报错,只为承载你的交互逻辑,让后台体验更统一、更专业。

热门AI工具

更多
Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

9624

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

5781

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

2055

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

3608

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

4294

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

3371

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

4797

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

3742

2023.11.13

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

0

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
如何在 Windows 11 上安装 XAMPP
如何在 Windows 11 上安装 XAMPP

共1课时 | 203人学习

第二十三期_前端开发
第二十三期_前端开发

共98课时 | 11.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn