创建自定义角色、多站点、添加用户/站点?

时间:2014-09-29 作者:thatryan

我也看到过类似的问题,但是我发现问一个与此相近的问题却没有得到回答。

我正在尝试为我们的多站点安装支持团队创建一个角色,他们可以像超级管理员一样访问所有站点,还可以管理/创建/编辑/删除网络中的用户和站点。

根据Codes on capabilities 这个manage_sitesmanage_network_users 应该授予这些选项,还是我没有正确阅读?到目前为止,我的插件的代码如下:

function sqms_add_custom_roles() {
add_role(
    \'sqms_support_team\',
    __( \'Support Team\' ),
    array(
        \'delete_others_pages\'    => true,
        \'delete_others_posts\'    => true,
        \'delete_pages\'           => true,
        \'delete_posts\'           => true,
        \'delete_private_pages\'   => true,
        \'delete_private_posts\'   => true,
        \'delete_published_pages\' => true,
        \'delete_published_posts\' => true,
        \'edit_dashboard\'         => true,
        \'edit_files\'             => true,
        \'edit_others_pages\'      => true,
        \'edit_others_posts\'      => true,
        \'edit_pages\'             => true,
        \'edit_posts\'             => true,
        \'edit_private_pages\'     => true,
        \'edit_private_posts\'     => true,
        \'edit_published_pages\'   => true,
        \'edit_published_posts\'   => true,
        \'edit_theme_options\'     => true,
        \'export\'                 => true,
        \'import\'                 => true,
        \'list_users\'             => true,
        \'manage_categories\'      => true,
        \'manage_links\'           => true,
        \'manage_options\'         => true,
        \'moderate_comments\'      => true,
        \'promote_users\'          => true,
        \'publish_pages\'          => true,
        \'publish_posts\'          => true,
        \'read_private_pages\'     => true,
        \'read_private_posts\'     => true,
        \'read\'                   => true,
        \'remove_users\'           => true,
        \'switch_themes\'          => true,
        \'upload_files\'           => true,
        \'edit_users\'             => true,
        \'create_users\'           => true,
        \'delete_users\'           => true,
        \'unfiltered_html\'        => true,
        \'manage_sites\'           => true,
        \'manage_network_users\'   => true,
    )
);

}

function sqms_remove_custom_roles() {
    remove_role( \'sqms_support_team\' );
}

register_activation_hook( __FILE__, \'sqms_add_custom_roles\' );
register_deactivation_hook( __FILE__, \'sqms_remove_custom_roles\' );
“网络”选项不会显示在“我的站点”菜单中,并导航到/站点新建。php只给出一个无权限错误。

有什么建议吗?非常感谢。

1 个回复
最合适的回答,由SO网友:Josh Levinson 整理而成

根据功能代码,manage\\u sites和manage\\u network\\u用户应该授予这些选项,还是我没有正确阅读?

显然,这里的能力还不够。退房wp-admin/network.php.如果当前用户未能通过is_super_admin 检查这张支票$super_admins 全局发件人get_super_admins 如果当前用户不在该数组中,则返回false。似乎必须通过该选项将用户添加为超级管理员,而不仅仅是通过适当的功能。可以通过手动编辑用户(用户编辑屏幕上有一个复选框)或使用grant_super_admin 作用

关于显示所需内容的管理栏,请查看wp-includes/admin-bar.php. 您将看到它还运行is\\u super\\u admin检查以确定网络管理菜单的输出。

结束

相关推荐

Multisite Widget/Content

我正在使用WordPress multisite,需要在侧边栏中显示所有子网站的内容。这是一个由50多个站点组成的网络,因此每隔几天用此内容更新所有50多个侧栏是不现实的。我找到的一个解决方案是简单地将我想要的内容插入侧边栏。虽然我不希望我的客户机编辑这个文件,但我希望他们使用TinyMCE编辑器而不是HTML。另一个想法是在每个子网站中嵌入一个iframe,让我的客户端更新iframe引用的页面。我的最后一个想法是用TinyMCE编辑器创建一个插件,将代码注入侧栏。php文件保存时,虽然我不知道插件是否