无需插件移除WordPress后台图标及SVG,求更简洁实现方案
无需插件移除WordPress后台所有菜单图标(含插件添加图标)
核心实现思路
WordPress后台的菜单图标(包括默认菜单和插件新增菜单)均通过admin_menu钩子注册定义,我们可以遍历全局菜单数组程序化清除图标配置;针对少数用CSS强制添加图标的插件,补充CSS规则即可彻底隐藏。
全局移除所有菜单图标(PHP代码)
将以下代码添加到当前主题的functions.php文件中,它会在所有插件完成菜单注册后,清除顶级菜单和子菜单的图标:
add_action('admin_menu', 'remove_all_admin_menu_icons', 999); function remove_all_admin_menu_icons() { global $menu, $submenu; // 处理所有顶级菜单 foreach ($menu as $key => $menu_item) { if (isset($menu[$key][6])) { $menu[$key][6] = ''; } } // 处理所有子菜单(部分插件会给子菜单单独设置图标) foreach ($submenu as $parent_slug => $sub_items) { foreach ($sub_items as $sub_key => $sub_item) { if (isset($submenu[$parent_slug][$sub_key][4])) { // 移除子菜单中的图标类和SVG代码 $submenu[$parent_slug][$sub_key][4] = preg_replace('/dashicons-[a-z0-9-]+|(<svg.*?<\/svg>)/i', '', $submenu[$parent_slug][$sub_key][4]); } } } }
WooCommerce图标专项优化
如果全局代码对WooCommerce菜单图标处理效果不理想,可补充以下CSS规则彻底隐藏:
add_action('admin_head', 'remove_woocommerce_menu_icon_css'); function remove_woocommerce_menu_icon_css() { echo '<style> /* 隐藏WooCommerce顶级菜单图标 */ #toplevel_page_woocommerce .menu-icon-woocommerce div.wp-menu-image { display: none !important; } /* 调整菜单文字位置,避免留白 */ #toplevel_page_woocommerce .wp-menu-name { margin-left: 0 !important; } </style>'; }
注意事项
- 代码优先级设为
999,确保在所有插件注册菜单之后执行,保证覆盖效果。 - 若遇到其他插件的图标无法通过PHP清除,可通过浏览器开发者工具找到对应菜单的CSS选择器,补充到
admin_head的样式中隐藏。 - 修改
functions.php前请务必备份文件,避免代码错误导致后台无法访问。
内容的提问来源于stack exchange,提问作者Web Honey Digital
相关产品推荐
相关产品推荐

