{"id":1311,"date":"2017-10-05T15:50:38","date_gmt":"2017-10-06T01:50:38","guid":{"rendered":"http:\/\/mymonkeydo.com\/?p=1311"},"modified":"2017-10-05T15:50:38","modified_gmt":"2017-10-06T01:50:38","slug":"where-is-wp_capabilities","status":"publish","type":"post","link":"https:\/\/mymonkeydo.com\/where-is-wp_capabilities\/","title":{"rendered":"Where is wp_capabilities?"},"content":{"rendered":"
After creating a user with a certain role I need to do a custom sql query where it only selected users of a specific role.\u00a0 This failed to find anything:<\/p>\n
get_userinfo got the right role, so saving was correct.<\/p>\n $caps was null.\u00a0 weird.<\/p>\n <\/p>\n You learn something new everyday.\u00a0 After looking through the WordPress core code I found that the meta key is actually composed of the table prefix and ‘capabilities’.\u00a0 So the correct query would be:<\/p>\nselect u.ID, u.display_name, u.user_login
\nfrom $wpdb->users as u
\ninner join $wpdb->usermeta as umr
\non ( umr.user_id = u.ID )
\nand ( umr.meta_key = 'wp_capabilities' )
\n<\/code><\/p>\n$user = get_userinfo( $user_id );
\nvar_dump( $user->roles );
\n<\/code><\/p>\n$caps = get_user_meta( $user_id, 'wp_capabilities' );
\nvar_dump( $caps );
\n<\/code><\/p>\nSolution<\/h2>\n
select u.ID, u.display_name, u.user_login
\nfrom $wpdb->users as u
\ninner join $wpdb->usermeta as umr
\non ( umr.user_id = u.ID )
\nand ( umr.meta_key = '\" . $wpdb->prefix . \"capabilities' )
\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[2],"tags":[51,54,64],"yoast_head":"\n