You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress调用add_submenu_page()创建子菜单出现空白页错误怎么办

WordPress后台添加子菜单后白屏问题原因及解决方案
  • 缺少必填的回调函数参数

add_menu_page() 和 add_submenu_page() 都要求传入菜单页内容渲染的回调函数作为必填参数,你当前的写法省略了该参数,会触发PHP参数缺失的致命错误。单独添加主菜单未报错是WordPress低版本的容错机制,新增子菜单后错误被触发。
正确的代码示例如下:

// 挂载菜单注册逻辑到官方指定的admin_menu钩子,禁止全局直接执行
add_action('admin_menu', 'register_custom_admin_menu');
function register_custom_admin_menu() {
    // 主菜单注册,最后一个参数为页面渲染回调函数
    add_menu_page("page title", "menu name", 'manage_options', "test-slug", "render_main_menu_page");
    // 子菜单注册,最后一个参数为子页面渲染回调函数
    add_submenu_page("test-slug", "sub title", "sub menu", 'manage_options', "test-sub-slug", "render_sub_menu_page");
}

// 主菜单页面渲染逻辑
function render_main_menu_page() {
    echo '<div class="wrap"><h1>主菜单页面内容</h1></div>';
}

// 子菜单页面渲染逻辑
function render_sub_menu_page() {
    echo '<div class="wrap"><h1>子菜单页面内容</h1></div>';
}
  • 未挂载到正确的钩子执行

菜单注册代码必须挂载到admin_menu动作钩子执行,不能直接在全局作用域写这两行函数调用。全局执行时WordPress后台菜单系统还未初始化,会触发函数调用时机错误。

  • 权限参数不规范

你用数字10作为权限参数,这种用用户等级的写法已经被WordPress废弃,建议换成官方推荐的权限字符串,比如manage_options对应管理员权限,避免后续版本兼容问题。

  • 错误排查方法

如需查看具体错误信息,可修改WordPress根目录下的wp-config.php配置,将define( 'WP_DEBUG', false );改为define( 'WP_DEBUG', true );,同时新增一行define( 'WP_DEBUG_DISPLAY', true );,刷新页面即可显示具体的PHP报错内容,定位问题更精准。问题修复后记得改回默认配置避免泄露站点信息。

内容的提问来源于stack exchange,提问作者MH LI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:57:02