如何在wordpress中获取多站点的所有管理员。 我正在为此创建自定义插件 我被困在自定义代码中,以获取主网站中多站点的所有管理员。 对于前我的主要网站是:wyz.com,我的第二个网站是:xyz.com/demo。 主要网站管理员是" abc"而对于" xyz.com/demo"网站管理员是" abcde"。 现在我如何得到" abcde"管理员在我的主网站。
在我的直播网站中,我目前有6k管理员。所以我很难得到这个。我是多站点wordpress的新手。
答案 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();