如何在wordpress

时间:2017-10-30 07:02:28

标签: wordpress customization multisite

如何在wordpress中获取多站点的所有管理员。  我正在为此创建自定义插件 我被困在自定义代码中,以获取主网站中多站点的所有管理员。 对于前我的主要网站是:wyz.com,我的第二个网站是:xyz.com/demo。 主要网站管理员是" abc"而对于" xyz.com/demo"网站管理员是" abcde"。 现在我如何得到" abcde"管理员在我的主网站。

在我的直播网站中,我目前有6k管理员。所以我很难得到这个。我是多站点wordpress的新手。

1 个答案:

答案 0 :(得分:1)

要从任何子站点获取数据,首先需要使用switch_to_blog()功能切换到该站点。然后无论你触发什么查询,它都只会从该网站提供记录。从子站点获取数据后,不要忘记将其还原到当前站点。您可以使用restore_current_blog()函数恢复它。

要获取所有网站的所有管理员用户,您需要执行以下操作:

1)使用wp_get_sites()函数获取所有网站的blog_id。

2)获得blog_id后,您需要执行以下循环以获取每个站点的管理员用户。

假设您从$blog函数

获取blog_ids数组wp_get_sites()
foreach ($blogs as $blog) 
    {
        switch_to_blog( $blog->blog_id ); // blog id which u got from wp_get_sites() function
        $users_query = new WP_User_Query( array( 
                    'role' => 'administrator', 
                    'orderby' => 'display_name'
                    ) );  // query to get admin users
        $results = $users_query->get_results();
        $site_admins .= 'Blog ID: ' . $blog->blog_id . '<pre>' . print_r($results,true) . '</pre>';
    }
    restore_current_blog();