How to get users who belong to a WordPress Multisite blog (site) with SQL?

旧街凉风 提交于 2019-12-07 17:15:49

问题


I need to get all the users who have joined (are members) of a site (blog) in WordPress multisite. To complicate it, I am doing this outside of WordPress and don't have access to internal Wordpress functions, so need to construct the SQL directly.

In English the SQL would break down as "get an array of user IDs of users that are members of site x" (where site relates to one of the WordPress Multisite sites).

I've tried going through WordPress code to understand, but struggling with the above.

I don't need the PHP, I can work that out, just an example SQL statement.

Many thanks!


回答1:


  1. select * from wp_blogs

From the output of the command note down the blog_id you want the users of. For eg: say you are wanting the users of the site with blog_id = 2 , next run the following query.

  1. select * from wp_users u join wp_usermeta um on u.id=um.user_id where um.meta_key="wp_2_capabilities"



回答2:


Thanks for this code, just what I needed!

If it helps anyone else, I also extended it a bit to get how many people have a given role, e.g. a custom role teacher was used below:

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%'

This of course requires other roles not to contain the word teacher (e.g. maybe there's a role ex-teacher which it would also pick up). That was the case for me so I ran two queries and subtracted the two numbers.

If anyone knows how to do it with one query that would be nice?



来源:https://stackoverflow.com/questions/27495552/how-to-get-users-who-belong-to-a-wordpress-multisite-blog-site-with-sql

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!