这次来自于我爱水煮鱼大咖的blog:
可能因为不想给客户看到过多的菜单或者其他种种原因,你想简化 WordPress 后台菜单,其实这个非常容易:
add_action( 'admin_menu', 'wpjam_remove_admin_menus' );
function wpjam_remove_admin_menus(){
remove_menu_page( 'index.php' ); //Dashboard
remove_menu_page( 'edit.php' ); //Posts
remove_menu_page( 'upload.php' ); //Media
remove_menu_page( 'edit.php?post_type=page' ); //Pages
remove_menu_page( 'edit-comments.php' ); //Comments
remove_menu_page( 'themes.php' ); //Appearance
remove_menu_page( 'plugins.php' ); //Plugins
remove_menu_page( 'users.php' ); //Users
remove_menu_page( 'tools.php' ); //Tools
remove_menu_page( 'options-general.php' ); //Settings
}
如果仅仅想移除子菜单,比如设置界面:
remove_menu_page( 'options-general.php' ); //Settings
也可以移除插件生成的菜单,只要复制链接的最后一段即可,比如要隐藏下面自定义日志类型生成的页面:
http://yourdomain.com/wp-admin/edit.php?post_type=portfolio 可以使用函数: remove_menu_page( 'edit.php?post_type=portfolio' );
WordPress 后台菜单怎么批量隐藏?
在 admin_menu 钩子里调用 remove_menu_page() 即可批量移除主菜单项。常见如仪表盘、文章、媒体、页面、评论、外观、插件、用户、工具和设置,按菜单 slug 逐个写入即可。
只想隐藏设置菜单该怎么写?
直接调用 remove_menu_page('options-general.php') 就能移除设置入口。这个方法适合只保留少量功能给客户使用,避免他们误改站点配置。
自定义文章类型菜单也能隐藏吗?
可以。找到该菜单链接最后一段对应的 slug,例如 edit.php?post_type=portfolio,然后用 remove_menu_page('edit.php?post_type=portfolio') 隐藏它。思路是复制后台菜单链接末尾参数来匹配。







发表回复