删除特定用户的插件子菜单项



在WordPress站点的后端,管理菜单是这样的:

媒体仪表盘


Pluginname
——
编辑短代码
——
设置常见问题

我想隐藏Pluginname/Settings从一个管理员。因为将鼠标悬停在Pluginname/Settings上会显示https://url.xy/wp-admin/edit.php?post_type=pluginname&page=plg_settings,所以我在functions.php文件中添加了以下代码行:

add_action( 'admin_init', 'my_remove_menu_pages' );
function my_remove_menu_pages() {
global $user_ID;
if ( $user_ID == 2 ) {
remove_menu_page( 'pluginname.php' , 'plg_settings.php' );
}
}

但是这没有做任何事情。有人能给我一些建议吗?

多亏了spesshock的提示,我找到了解决方案。我必须使用remove_submenu_page而不是remove_menu_page:

remove_submenu_page( 'edit.php?post_type=pluginname' , 'plg_settings' );

如果你不看函数代码,我真的建议你使用admin菜单编辑器。https://wordpress.org/plugins/admin-menu-editor/它将允许你改变链接的名称,图标,权限和这么多的选项。希望你能成功

最新更新