Show only users of opposite genders on BuddyPress site

If you are creating a dating site or something that needs you to filter users list based on current user's gender, It may not be vary obvious in BuddyPress. Believe me , It is easier than what you might think.

Basic Premise:-

BuddyPress does not have a way to specify user gender's. We can either use Profile field(dropdown/radio) or member type. I will use member type for the genders. The benefit of using member type is, it allows efficient filtering of the users.


I am assuming you have two member types 'male' and 'female' registered. Any users with male member type will be considered as male and the same goes for the female member type. I am also considering male member type as opposite of the female member type for the sake of our use case.


  • We will filter members listings and only show users of opposite gender if a user is logged in, and has the gender set.
  • When a user of same gender tries to access other user's profile, we deny the access.
  • We do not do anything if a user is not logged in.


We will write a few utility functions that will help us with our implementation. Here is the list of functions we plan to use.

  • is_user_male( $user_id ) : bool
  • is_user_female( $user_id ): bool
  • get_user_gender( $user_id ) : string (¬† 'male' or 'female' )
  • get_opposite_gender( $user_id ): string ( 'male' or 'female' )

That's our list of utility functions. I have implemented these as class methods.

Here is the concrete implementation of the whole filtering of BuddyPress users.

Please put this code in your bp-custom.php and you will be good to go.


Leave a Reply

Are you looking for support?

Please ask support questions in BuddyDev Forum and help us serve you better. Please use comment for general discussion/feature suggestions.

Your email address will not be published. All the fields marked as * are required.

If you are posting code, please use <pre> { Your Code Block } </pre>. Example:- <pre> echo $name; </pre>

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">