
智能摘要 AI
本文作者遇到了WordPress后台添加菜单时,第一个子菜单项与父菜单项名称重复的问题。最初使用的代码直接添加了多个子菜单项,导致视觉上的冗余。经过查阅官方文档和海外搜索引擎,作者发现可以通过`admin_menu`钩子结合`global $submenu`变量来移除重复的子菜单项。最终通过设置`unset($submenu['hotspot'][0]);`解决了问题,使菜单布局更加整洁美观。这一解决方案避免了不必要的视觉混乱,并提升了用户体验。
今天遇到一个困惑我许久的问题,WordPress后台添加菜单,过滤掉第一个子菜单项,记录以下,将来如果有有缘人看见,记得给其他人分享,避免这个坑。
由于我插件的页面是用的WordPress的原生方法,没有使用框架,因为有些时候框架为限制我们的页面发挥。
我最开始的添加菜单的代码如下:
function hotspot_add_menu_item()
{
add_menu_page(
__('Hotspot 设置', 'hotspot'), // page title
__('Hotspot', 'hotspot'), // menu title
'manage_options', // capability
'hotspot', // menu slug
'hotspot_display_page', // callback function
'dashicons-admin-plugins', // icon
90// position
);
// Add sub-menu items under Hotspot
add_submenu_page(
'hotspot', // parent slug
__('热词挑选', 'hotspot'), // page title
__('热词挑选', 'hotspot'), // menu title
'manage_options', // capability
'hotspot-choices', // menu slug
'hotspot_choices_page' // callback function
);
add_submenu_page(
'hotspot', // parent slug
__('统计分析', 'hotspot'), // page title
__('统计分析', 'hotspot'), // menu title
'manage_options', // capability
'hotspot-statistics', // menu slug
'hotspot_statistics_page' // callback function
);
// Add sub-menu items under Hotspot about
add_submenu_page(
'hotspot', // parent slug
__('关于', 'hotspot'), // page title
__('关于', 'hotspot'), // menu title
'manage_options', // capability
'hotspot-about', // menu slug
'hotspot_about_page' // callback function
);
}
add_action('admin_menu', 'hotspot_add_menu_item');
虽然看起来,没有什么问题,但实际上,他会在子菜单创建一个与父菜单相同的菜单项,菜单名称重复,看起来的观感不好。我去把百度和CSDN都翻遍了天,都没找到相关的解决办法,最后还是在WordPress的官方文档里,翻到了有关过滤子菜单的钩子。
功夫不负有心人,还得是海外搜索引擎,完成了以下操作:
function remove_hotspot_submenu()
{
global $submenu;
if (isset($submenu['hotspot'])) {
unset($submenu['hotspot'][0]);
}
}
add_action('admin_menu', 'remove_hotspot_submenu');
过滤掉后,就非常的nice了,可以给大家看一下效果:

完美解决,收工!




