【问题标题】:How to get all admins of multisite in wordpress如何在 wordpress 中获取多站点的所有管理员
【发布时间】:2017-10-30 07:02:27
【问题描述】:
如何在 wordpress 中获取多站点的所有管理员。
我为此创建自定义插件
我被困在自定义代码中,以获取主网站中多站点的所有管理员。
例如。我的主要网站是:wyz.com,我的第二个网站是:xyz.com/demo。
主网站管理员是“abc”,“xyz.com/demo”网站管理员是“abcde”。
现在我如何在我的主网站中获得“abcde”管理员。
在我的实时站点中,我目前有 6k 管理员。所以我很难得到这个。我是多站点 wordpress 的新手。
【问题讨论】:
标签:
wordpress
customization
multisite
【解决方案1】:
要从任何子站点获取数据,您首先需要使用switch_to_blog() 函数切换到该站点。然后,无论您发起什么查询,它都只会提供来自该站点的记录。从子站点获取数据后,不要忘记将其还原到当前站点。您可以使用restore_current_blog() 函数恢复它。
要获取所有站点的所有管理员用户,您需要执行以下操作:
1) 使用wp_get_sites()函数获取所有站点的blog_id。
2) 获得 blog_id 后,您需要执行以下循环来获取每个站点的管理员用户。
假设您从wp_get_sites() 函数中获得$blog 作为blog_ids 的数组
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();