[wp-hackers] only showing buddypress members that are editor or author level

Andrew Gray andrew at graymerica.com
Tue Sep 6 21:49:25 UTC 2011


Does anyone know how to filter all member lists in Buddypress to only show users with the role of author or higher.

I do not want subscriber level users to show up in the member lists.

I have looked at the bp_has_members function and can not find a way to do it.  I have also looked all over various filters available and I am stumped.

I have written the following code:

add_filter( 'bp_core_get_paged_users_sql', 'bp_filter_only_members' , 1, 9 ); 
add_filter( 'bp_core_get_total_users_sql', 'bp_filter_only_members' , 1, 9 ); 

function bp_filter_only_members($sql, $object)  {
$sql = str_replace('FROM' , ",(SELECT meta_value FROM wp_usermeta WHERE meta_key = 'wp_user_level' AND user_id = u.ID) AS user_level FROM" , $sql ) ; 
$sql = str_replace('ORDER BY' , "HAVING user_level > 1 ORDER BY" , $sql) ; 
return $sql;  
}

The issue I am having is that the count is coming back wrong.

Can anyone think of a better way than going directly to the SQL.   I have thought about meta values and some other hacky ways of doing this,

can anyone help me out on this,

thanks,

Andrew




More information about the wp-hackers mailing list