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

使用admin_menu动作添加WordPress后台菜单页面失败求助

排查WordPress admin_menu添加菜单失效的问题

我来帮你梳理下这段代码可能导致失效的几个常见原因,以及对应的解决办法:

  • 代码放置位置错误:如果这段代码没有放在正确的文件里,肯定不会生效。你需要确保代码放在当前激活主题的functions.php文件中,或者自己创建的自定义插件主文件内。要是放在了前端模板或者未激活的主题文件里,后台根本不会加载这段代码。

  • 用户权限不匹配:add_menu_page的第三个参数是访问该页面所需的用户权限,你用的edit_posts虽然大部分编辑角色都有,但如果当前登录的用户权限被自定义修改过,或者你用的是更低权限的账号(比如投稿者),就看不到这个菜单。可以先换成manage_options(超级管理员权限)测试,确认是不是权限的问题。

  • 菜单Slug冲突:第四个参数advert是菜单的唯一标识Slug,如果其他插件或主题已经使用了相同的Slug,你的菜单会被覆盖无法显示。建议改成更独特的名称,比如laksh-advert-dashboard。

  • 函数名重复冲突:如果你的主题或其他插件里已经存在laksh_advert_menu或laksh_advert_page这两个函数名,PHP会报错导致代码终止执行。给函数名加上专属前缀就能解决,比如laksh_custom_advert_menu。

  • 缓存影响:WordPress后台缓存、浏览器缓存或者缓存插件都可能让新菜单不显示。试试清除浏览器缓存,或者在后台清空缓存插件的缓存,再刷新页面看看。

这里给你调整后的测试代码,你可以先试试:

add_action('admin_menu', 'laksh_custom_advert_menu');
function laksh_custom_advert_menu() {
    add_menu_page( 
        'Advert', 
        'Advert', 
        'manage_options', 
        'laksh-advert-manager', 
        'laksh_custom_advert_page', 
        'dashicons-admin-tools' 
    );
}
function laksh_custom_advert_page() {
    echo "Hello";
}

内容的提问来源于stack exchange,提问作者Grey-lover

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:41:49