使用admin_menu动作添加WordPress后台菜单页面失败求助
我来帮你梳理下这段代码可能导致失效的几个常见原因,以及对应的解决办法:
代码放置位置错误:如果这段代码没有放在正确的文件里,肯定不会生效。你需要确保代码放在当前激活主题的
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
相关产品推荐
相关产品推荐

