如何在WordPress中将所有用户复制到多站点网络上新创建的站点?

时间:2018-07-10 作者:enigma

当我在多站点wordpress网络上创建一个新站点时,只会创建管理员用户。我希望所有在我的第一个网站上出现的用户也出现在这里。我已经尝试了几个导入和导出csv插件,但都没有正常工作。还有其他插件吗?

2 个回复
最合适的回答,由SO网友:enigma 整理而成

我想我已经找到了完美的解决方案。有一个插件叫做Multisite User Management. 它很容易完成任务。

只需激活它,然后转到网络管理->设置->网络设置

然后将有一个名为Multisite User Management. 只需为该特定站点分配角色(将分配给用户)。并将其保存,所有用户将自动复制到新站点。

SO网友:Krzysiek Dróżdż

如何将用户添加到博客

您可以使用add_user_to_blog 函数来执行此操作。在Codex之后,它:

授予指定博客上指定角色的指定用户权限。

你这样使用它:

add_user_to_blog($blog_id, $user_id, $role);
如何自动完成您希望在创建新站点时自动执行此操作,因此您必须编写一些代码并使用wpmu_new_blog

以下是其参数列表:

  • $blog_id(int)(可选)所创建博客的博客ID
  • $user_id(int)(必需)创建博客的用户的用户ID
  • $domain(字符串)(可选)用于新博客的域
  • $path(字符串)(可选)新博客的路径
  • $site_id(int)(可选)站点ID。仅与多网络安装相关
  • $meta(数组)(可选)元数据。用于设置初始站点选项

    function add_users_to_new_blog( $blog_id, $user_id, $domain, $path, $site_id, $meta ) {
        // get users you want to add to new blog
        $users_to_add = new WP_User_Query( array( \'blog_id\' => 1 ) );  // <-- change that 1 to proper blog id
    
        foreach ( $users_to_add->get_results() as $user ) {
            add_user_to_blog( $blog_id, $user->ID, \'administrator\' );  // <-- change administrator to any role you need
        }
    }
    add_action( \'wpmu_new_blog\', \'add_users_to_new_blog\', 10, 6 );
    

结束

相关推荐

更改wp-admin/plugins.php上统计的插件数量

我已成功地使用从插件页面隐藏我的插件$wp_list_table 然而,顶部的分页仍然将插件列为“所有(3)”等。我成功地改变了$wp_list_table 的数组_pagination_args = total_items.但它仍然在页面顶部呈现插件-“全部(3)”。有什么办法可以解决这个问题吗?我找到了WP_Plugins_List_Table::prepare_items()具有全局$totals 变量,但我不确定我将如何改变这一点,在这个函数中$totals = array(); fore