Exclude subscriber users from user list

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
3

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" 
);

Leave a Comment