我试图只选择在我的多站点设置中为特定站点注册的用户,并查看该用户表已收集网络上的所有用户。是否只有特定站点上的用户才能访问?还是只从特定站点选择用户?
在多站点设置中获取一个站点的用户表
1 个回复
最合适的回答,由SO网友:Pat J 整理而成
是的,所有WordPress多站点用户进入{$wpdb->prefix}users
桌子这样,他们就形成了一个用户池,每个用户都可以访问网络中的一个或多个站点。
您可以通过使用获取给定站点的用户get_users()
, 可以将给定站点的ID作为参数:
// get users for site example.com/my-site
$args = array(
\'blog_id\' = get_id_from_blogname( \'my-site\' ),
);
$users_for_site = get_users( $args );
如果您使用Multisiteblog_id
参数未设置,您将获得当前站点的用户。默认情况下,比较电子邮件地址,get_users()
返回的数组WP_User
objects, 因此,您应该能够比较电子邮件地址列表(假定包含在数组中$my_user_emails
在下面的代码中)返回到get_users()
:
// uses $users_for_site from the previous code block
$no_email_entered = array();
foreach( $users_for_site as $user ) {
if( ! in_array( $user->user_email, $my_user_emails ) ) {
$no_email_entered[] = $user->user_email;
}
}
// $no_email_entered should now contain all the email addresses
// in the list of site users that are *not* in your table
参考文献get_users()
get_id_from_blogname()
WP_User
class结束