我需要在 WordPress 多站点中获取所有加入(是成员)站点(博客)的用户。更复杂的是,我在 WordPress 之外执行此操作,并且无法访问内部 Wordpress 函数,因此需要直接构造 SQL。
在英语中,SQL 将分解为“获取作为站点 x 成员的用户的用户 ID 数组”(其中站点与 WordPress 多站点站点之一相关)。
我试过通过 WordPress 代码来理解,但在上面遇到了困难。
我不需要 PHP,我可以解决,只是一个示例 SQL 语句。
非常感谢!
select * from wp_blogs
从命令的输出中记下blog_id
您想要的用户。例如:假设您想要 blog_id = 2 的网站用户,接下来运行以下查询。
select * from wp_users u join wp_usermeta um on u.id=um.user_id where um.meta_key="wp_2_capabilities"
感谢这段代码,正是我需要的!
如果它对其他人有帮助,我还对其进行了扩展,以了解有多少人具有给定角色,例如,teacher
下面使用了自定义角色:
select * from wp_users u join wp_usermeta um on u.id=um.user_id where um.meta_key="wp_2_capabilities" AND um.meta_value LIKE '%teacher%'
这当然需要其他角色不包含教师这个词(例如,也许有一个角色ex-teacher
也会出现)。对我来说就是这种情况,所以我运行了两个查询并减去了两个数字。
如果有人知道如何用一个很好的查询来做到这一点?