SQL Query to Hole Liste aller Benutzer zusammen mit ihren Blogs

Wie man eine Liste von Benutzern zusammen mit den Blogs abfragt, in denen sie Mitglied einer Multi-Site-Wordpress-Installation sind.

Zum Beispiel brauche ich die Ergebnisse wie folgt

user domain abc xyz.com abc example.com ggh example.com 

Ich habe die folgende Abfrage ausprobiert, aber nicht alle Domains aufgelistet.

 SELECT DISTINCT a.user_login, a.user_email, c.domain FROM wp_users a JOIN wp_usermeta b ON a.id = b.user_id JOIN wp_blogs c ON b.meta_value = c.site_id LIMIT 0 , 100 

Ich bin mir nicht sicher, wie das Netzwerk / Multi-Site funktioniert .. kann mir bitte jemand sagen, wie man das Ergebnis bekommt?

Solutions Collecting From Web of "SQL Query to Hole Liste aller Benutzer zusammen mit ihren Blogs"

Sie können get_blogs_of_user() , um alle Blogs eines bestimmten Benutzers get_blogs_of_user() .

Um eine Liste nach Benutzern zu sortieren:

 global $wpdb; $blogs = array(); $user_ids = $wpdb->get_col( 'SELECT ID FROM $wpdb->users' ); foreach( $user_ids as $user_id ) { $blogs[$user_id] = get_blogs_of_user( $user_id ); } // you can use var_dump( $blogs ); to see what's in the $blogs array 

Wenn ich das Gleiche brauchte, gelang es mir, die Schlüsseldaten in den Tabellen wp_usermeta zu finden. Das hat für mich funktioniert:

 SELECT u.user_login, b.domain, SUBSTRING_INDEX(SUBSTRING_INDEX(um.meta_value,'"', 2), '"', -1) as role FROM wp_users u JOIN wp_usermeta um ON u.ID = um.user_id JOIN wp_blogs b ON b.blog_id = SUBSTRING(um.meta_key, 4, LENGTH(um.meta_key)-16) WHERE um.meta_key LIKE 'wp_%_capabilities' 

Ergebnisse:

 user_login domain role ============ ============ ================ webmaster blog1.com administrator user blog1.com editor webmaster blog2.com administrator