虽然这没有很好的文档记录,“超级管理员”不是一个角色(因为它不是实际的角色对象)。这更像是一种特殊的“身份”。
超级管理员(也称为“网络管理员”或“站点管理员”)的用户列表存储在名为site_admins
. 一般来说,向管理员角色添加一个功能就足够了,因为超级管理员实际上也是管理员角色的成员,拥有所有的功能。
也就是说,如果您特别需要只向超级管理员(而不是“普通”管理员)添加功能,那么最好只使用WordPress的is_super_admin()
函数而不是使用功能,因为假定超级管理员没有任何限制。
如果确实需要使用功能,则应使用grant_super_admin
和remove_super_admin
钩子可以在超级管理员用户的超级管理员状态更改时(分别)向超级管理员用户添加或从超级管理员用户中删除功能。
现在,就更改现有超级管理员用户的功能而言,您的方法是最好的……获取一个超级管理员用户列表,循环浏览,并为每个超级管理员用户添加功能(尽管如果使用上述挂钩,只需运行一次)。