BuddyPress Member Types: Setup, Roles and Directory
BuddyPress member types are labels that group your members, such as Student, Teacher or Premium Member. They are not the same as WordPress user roles. A role decides what someone is allowed to do on your site. A member type tells everyone, and your directory, who someone is in the community. You can use both together.
This guide explains member types in plain words, how to set them up with BuddyPress and the Wbcom BuddyPress Member Type plugin, how they change your member directory, and when a newer setup such as BuddyNext may suit you better.
What are BuddyPress member types?
A member type is a category you create for your members. Each member can be given a type, and BuddyPress remembers it. Once you have types, you can:
- Show a separate tab or list in the member directory for each type.
- Let people pick a type when they register or edit their profile.
- Show different profile fields to different groups.
- Find and manage one group of members without searching one by one.
Example: a school community can have Student, Teacher and Alumni. A coaching site can have Coach and Client. A professional network can have Freelancer, Employer and Mentor.
What is the difference between member types and BuddyPress user roles?
This is the question behind the searches for “BuddyPress roles” and “BuddyPress user roles”, so it is worth being clear.
- WordPress roles (Subscriber, Author, Editor, Administrator) control permissions: who can publish, edit or manage the site. BuddyPress uses these roles as they are.
- BuddyPress member types are community categories. They carry no permissions by themselves.
- Group roles are a third thing. Inside each BuddyPress group, people are an Administrator, a Moderator or a Member of that group only.
So when someone asks for “BuddyPress roles”, they usually need one of these three, and it helps to decide which before you build anything. If you want a Teacher to be able to publish posts, that is a WordPress role. If you only want to show a Teacher badge and a Teachers tab, that is a member type. The Wbcom plugin can connect the two: you can link a type to a role, and assigning the type applies the role.
A word of caution on that link. Only map a type to a role if you are happy for every person with that type to have that role’s permissions. If members can pick their own type at registration, do not map that type to a role that can publish or manage content. The plugin does not offer the Administrator role for mapping.
How do I set up member types in BuddyPress?
Current BuddyPress already lets you create member types from Users > Member Types. What it does not do is link a type to a WordPress role, offer the type as a profile field, or control where each type is shown. The Wbcom BuddyPress Member Type plugin adds those pieces, so site owners do not need to write code. It needs BuddyPress active, and the Extended Profiles (xProfile) component on if you want the profile field types.
Step 1: Create a member type
- Install and activate the BuddyPress Member Type plugin.
- In the WordPress admin, go to Users > Member Types and click Add New Member Type.
- Enter a name such as “Teacher”.
- Choose the options. The main ones added by the plugin are the associated role, Display in Registration Form, Pre-select on registration, Display inside Edit Profile Settings and Exclude from Members Directory.
- Save. Repeat for each type.
Step 2: Add the member type field to profiles
- Go to Users > Profile Fields and add a new field.
- Choose the single-selection Member Type field if each person has one type, or Member Types if people can have several.
- Name it something people understand, such as “I am a…”.
- Save. New and existing members now see the field when they register or edit their profile.
Step 3: Assign types in bulk
To put many existing members into a type at once, open Users, tick the members, choose the change-member-type bulk action and apply. This is the quick way to organise a community you already have.
How do the registration and profile options work?
Each member type has its own switches, so you decide where it appears:
- Display in Registration Form: the type is offered to new visitors when they sign up.
- Pre-select on registration: the type is ticked by default for a visitor who is not logged in. Use it for the type most people will want.
- Display inside Edit Profile Settings: the type is offered on the member’s own profile edit screen. Leave it off for types only you should assign.
The profile field then shows only the types allowed in that place. A Teacher type can be hidden from the sign-up form and assigned by you after you check credentials, while Student stays open. You can also hide the whole member type field on the front-end profile with the Show Member Type field in user profile checkbox. Administrators still see it in the admin, so you can keep managing assignments.
What happens when a member has more than one type?
If you use the multi-select field, a member can hold several types, and each type may point to a different role. The plugin handles this in two ways. If the User Role Editor plugin is active, the member receives every mapped role. If it is not, the member receives the single mapped role with the most capabilities. That second rule surprises people, so decide early whether you really need multi-type members. For most communities one type per person keeps everything easier to explain.
Member types, profile fields or groups: which should I use?
- Use a member type for who someone is in your community, when you want a directory tab and a clear label. Example: Mentor.
- Use a profile field for details about a person that are not worth a tab. Example: city, favourite topic, years of experience.
- Use a group for people who gather around something. Example: a local meetup or a course cohort. People can leave and join groups, and a group has its own discussion.
A rule of thumb: if you would never show a directory tab for it, it is probably a profile field. If people come and go from it, it is a group.
How do member types change the BuddyPress member directory?
This answers the “BuddyPress member directory” searches. With types in place, the directory can show a tab for each type, so visitors can click Mentors and see only mentors, instead of scrolling through everyone. Two options matter:
- Directory tab for a type: keep it on for any group that people want to browse.
- Exclude from Members Directory: use it for staff, test accounts or private groups that should not be browsable.
If a tab is missing, check three things: the type is allowed in the directory, at least one member has that type, and the type is not excluded. A directory is only as useful as the profiles in it, so ask members to fill in the type field and a few profile details when they join.
What are good examples of member types?
Education
Teacher, Student, Teaching Assistant, Alumni. Show Teachers and Students as separate directory tabs, and let Alumni self-select at registration.
Membership site
Free Member, Premium Member, Staff. Be careful here: a member type is a label, not a payment check. If the label should follow a paid plan, set it from the membership plugin, not from a field members can edit themselves. Our guide on BuddyPress and Paid Memberships Pro covers paid access.
Professional network
Freelancer, Employer, Mentor, Industry Expert. A directory tab for each makes it easy for an employer to find a freelancer.
What mistakes should I avoid with member types?
- Using a type as a payment check. A label that members can change on their own profile proves nothing. If a type should follow a paid plan, set it from the membership plugin and keep it off the profile edit screen.
- Mapping a self-selected type to a powerful role. If anyone can choose “Teacher” at sign-up and Teacher maps to Editor, anyone can become an Editor. Map self-selected types to low-permission roles only.
- Creating a type nobody asked for. Every type adds a tab and a choice. Start small and add types when members ask for them.
- Forgetting to assign existing members. A new type shows an empty directory tab until people hold it. Use the bulk action on day one so the directory looks alive.
- Skipping a test on a staging copy. Role mapping changes real accounts. Try it with two test users before you bulk-assign hundreds.
How do I make the member directory more useful?
Types are only one part. A directory people actually use also has a clear name for each tab, profile photos, and a short headline or bio on every card. Ask for those during onboarding. On a larger community, check how the directory behaves with a few thousand members: it should paginate and respond quickly, and you should test that on a staging copy before launch, not after. If you want a bigger picture of how members find each other, our post on community management in WordPress is a good next read.
For developers: hooks and code
The Wbcom plugin gives you hooks to extend it. These are the ones we checked in the current code:
// Actions
do_action( 'bp_member_type_xprofile_save_field' ); // After field options are saved
do_action( 'bp_member_type_change_user_role', $user_id, $role_slugs ); // After a role is applied
do_action( 'bp_member_type_meta_field_display', $xprofile_obj ); // Add custom fields to the type screen
// Filters
apply_filters( 'bp_member_types_count', $count, $type_id ); // Change member counts
apply_filters( 'bp_member_type_get_site_roles', $roles ); // Change the roles offered for mapping
apply_filters( 'buddypress_member_type_registration_member_types', $member_types ); // Types shown at registration
Run your own code when a type is set
add_action( 'bp_set_member_type', 'my_member_type_handler', 10, 2 );
function my_member_type_handler( $user_id, $member_type ) {
if ( 'premium-member' === $member_type ) {
update_user_meta( $user_id, 'has_premium_access', true );
}
}
Limit which types show at registration
add_filter( 'buddypress_member_type_registration_member_types', function ( $member_types ) {
$allowed = array( 'student', 'alumni' );
foreach ( $member_types as $type_id => $type ) {
if ( ! in_array( $type_id, $allowed, true ) ) {
unset( $member_types[ $type_id ] );
}
}
return $member_types;
} );
Count the members of one type
$result = bp_core_get_users( array(
'member_type' => 'teacher',
'per_page' => 1,
) );
$teacher_count = (int) $result['total'];
On a large community, avoid counting inside a loop on every page load. Count once and cache the result.
Troubleshooting common problems
- The type does not show at registration. Turn on Display in Registration Form for that type, and make sure the Member Type field is added to the registration profile group.
- The role does not change. Check that a role is associated with the type (types left on “Select Role” do not change anything), and that the person was assigned the type through the field, the bulk action or registration. Existing Administrators are never re-assigned by the plugin.
- A directory tab is missing. The type must be allowed in the directory, not excluded, and have at least one member.
- Members can pick a type you wanted to control yourself. Do not show that type at registration or in profile edit, and assign it from the admin.
Is there a simpler way? Member types in BuddyNext
If you are starting a new community instead of extending a BuddyPress one, BuddyNext (our social community plugin) has member types built in, in the free version. You create types under BuddyNext > Members > Directory > Member Types, and each type has a name, a colour, an optional icon and a description.
- A type shows as a coloured badge on the member’s profile and on their card in the directory.
- A type can be a filter tab in the member directory.
- A type can be self-selectable, so members choose it on their profile, or reserved for you to assign.
- Each member has one type at a time.
BuddyNext’s migration guide says member types come across when you move from BuddyPress. Pro adds extras such as stacking editorial member labels (Verified, Expert) on top of a type, and filtering the directory by membership plan. Tell us honestly what you need: if your site already runs on BuddyPress with its theme and add-ons, the BuddyPress Member Type plugin is the lighter change. For a new build, look at BuddyNext. Our post on the complete picture of BuddyNext explains the rest of the platform.
How to plan your member types
- Start with three to six types. Too many types make the directory hard to use.
- Use plain names your members already use for themselves.
- Decide who assigns each type: members themselves, or you.
- Keep permissions separate. Use roles and plans for access, types for identity.
- Review once a quarter. Remove types nobody uses.
For wider ideas on keeping members active once they are sorted, read what is community engagement.
Frequently asked questions
What are member types in BuddyPress?
They are categories for members, like Student or Mentor. They label people and power directory tabs. They do not control permissions.
Can a member have more than one type?
BuddyPress allows it. With the Wbcom plugin you choose a single-select or multi-select field. In BuddyNext, a member has one type at a time.
Can I link a member type to a WordPress role?
With the Wbcom BuddyPress Member Type plugin, yes. Assigning the type applies the role. Only do this if you control who can get the type.
How do I hide a member type from the directory?
Edit the type and turn on Exclude from Members Directory.
Can I add member types to existing users in bulk?
Yes. In the Users screen, select users and use the change-member-type bulk action.
Do I need to write code?
No. The plugin has admin screens. Code is only for custom behaviour, like the examples above.
Need help?
For help with the BuddyPress Member Type plugin, use our contact page. If you want us to set up your community structure for you, see our services.