对于Stack Exchange社区博客,我们已经设置了网络安装。有人告诉我,站点管理员角色不允许用户进行编辑。将鼠标悬停在网站的用户页面上时,只有一个选项delete
,没有一个针对edit
。
与用户权限相关的唯一选项如下,但实际上并不是我要这样做的...
如何使站点管理员能够完全控制该特定站点上的用户?
对于Stack Exchange社区博客,我们已经设置了网络安装。有人告诉我,站点管理员角色不允许用户进行编辑。将鼠标悬停在网站的用户页面上时,只有一个选项delete
,没有一个针对edit
。
与用户权限相关的唯一选项如下,但实际上并不是我要这样做的...
如何使站点管理员能够完全控制该特定站点上的用户?
Answers:
如“ 网络管理员用户”屏幕的说明中所述,在网络安装(多站点模式)中,用户为
在全球范围内添加到整个网络,然后分配给特定站点
普通管理员不允许修改这些全局配置文件,因为他们的权限仅扩展到给定的站点。该任务仅供超级管理员使用,他们对整个网络具有完全控制权。
在WordPress的早期版本中,当多站点安装依赖于单独的WordPress MU支持时,您可以EDIT_ANY_USER
在wp-config.php文件中将其定义为true。但是,由于多站点支持是本机集成的,因此我认为已删除了该支持。
要从“网络管理员用户”屏幕管理网络用户,用户必须属于至少具有manage_network_users
和edit_users
权限的角色。您可以尝试创建一个包含这些权限和标准管理员权限的自定义角色,但是我不相信这样做的效果如何。就个人而言,我只是想避免绕过这些限制。
WordPress多站点3.0不允许站点管理员编辑用户。http://wordpress.org/support/topic/administrators-cant-edit-users
也许此插件可以提供帮助:http : //wordpress.org/extend/plugins/extended-super-admins/结合硬编码针对每个站点的全局变量$ super_admins。
在加载站点管理菜单时,应该可以将其设置为一个钩子-尚不确定如何实施。不久之后,我将不得不面对自己的问题,这似乎是一个很有前途的解决方案。
请参阅:http : //svn.automattic.com/wordpress/trunk/wp-admin/includes/ms.php,并注意是否已设置全局$ super_admins。
/ ** *授予超级管理员权限。 * * @ 3.0.0起 * @param int $ user_id * / 函数grant_super_admin($ user_id){ 全球$ super_admins; //如果定义了全局super_admins覆盖,则此处无事可做。 如果(isset($ super_admins)) 返回false; do_action('grant_super_admin',$ user_id); //直接获取site_admins,而不使用get_super_admins() $ super_admins = get_site_option('site_admins',array('admin')); $ user =新的WP_User($ user_id); 如果(!in_array($ user-> user_login,$ super_admins)){ $ super_admins [] = $ user-> user_login; update_site_option('site_admins',$ super_admins); do_action('granted_super_admin',$ user_id); 返回true; } 返回false; } / ** *撤销超级管理员权限。 * * @ 3.0.0起 * @param int $ user_id * / 函数revoke_super_admin($ user_id){ 全球$ super_admins; //如果定义了全局super_admins覆盖,则此处无事可做。 如果(isset($ super_admins)) 返回false; do_action('revoke_super_admin',$ user_id); //直接获取site_admins,而不使用get_super_admins() $ super_admins = get_site_option('site_admins',array('admin')); $ user =新的WP_User($ user_id); 如果($ user-> user_email!= get_site_option('admin_email')){ if(false!==($ key = array_search($ user-> user_login,$ super_admins))){ unset($ super_admins [$ key]); update_site_option('site_admins',$ super_admins); do_action('revoked_super_admin',$ user_id); 返回true; } } 返回false; }