I want to exclude Subscribers from a user list. My code is:
$users = $wpdb->get_results( "SELECT display_name FROM $wpdb->users ORDER BY display_name ASC" );
How can I change that so subscribers are excluded from the list?
I also looked at the get_users function in codex but it did not have an exclude by role parameter.
Edit: Or another way would be to get the results filtered by capability (one that subscribers doesn’t have).
3 Answers
This new method should work. It looks at all the capability values to find “subscriber”, and hides it.
Try this query
$wpdb->get_results(
"SELECT display_name
FROM $wpdb->users WHERE 1=1 AND {$wpdb->users}.ID IN (
SELECT {$wpdb->usermeta}.user_id FROM $wpdb->usermeta
WHERE {$wpdb->usermeta}.meta_key = '{$wpdb->prefix}capabilities'
AND {$wpdb->usermeta}.meta_value NOT LIKE '%subscriber%') ORDER BY display_name ASC"
);