使用提供的另一个答案,似乎有两种方法可以将用户及其分配的角色从主站点复制到WordPress多站点网络中的子站点。
它可以设置为添加当前用户或站点中的所有用户(我选择了主网络站点,blog_id=1) 当他们访问页面时访问子网站。
下面是如何做到这两个,选择一个并添加到functions.php:
Add only the user to each subsite
function add_current_user_to_site() {
    if(!is_user_logged_in()) {
        return false;
    }
    $current_user = wp_get_current_user();
    $blog_id = get_current_blog_id();
    $user_id = ($current_user->ID);
    switch_to_blog(1);
    $get_role = ($current_user->caps);
    $add_role = key($get_role);
    restore_current_blog();
    if (!is_user_member_of_blog( $user_id, $blog_id ) ) {
        add_user_to_blog( $blog_id, $user_id, $add_role );
    }
}
add_action(\'wp\',\'add_current_user_to_site\');
 <小时>
Add all users to each subsite
function add_all_users_to_site() {
    if(!is_user_logged_in()) {
        return false;
    }
    $users = get_users(\'blog_id=1\');
    $sites = get_sites();
    foreach ($sites as $site) {
        foreach ($users as $user) {
            $blog_id = get_current_blog_id();
            $user_id = ($user->ID);
            switch_to_blog($site->id);
            $get_role = ($user->caps);
            $add_role = key($get_role);
            restore_current_blog();
            if (!is_user_member_of_blog( $user_id, $blog_id ) ) {
                add_user_to_blog( $blog_id, $user_id, $add_role );
            }
        }
    }
}
add_action(\'wp\',\'add_all_users_to_site\');