BuddyPress: Show a Profile Field in the Members Directory
Shows a profile field such as Location or Job Title under each member's name in the BuddyPress members directory.
Opens WPIDE on
Code
if ( ! function_exists( 'buddypress' ) ) {
return;
}
// Profile field names to show.
$wpide_bp_directory_fields = array( 'Location' );
add_action( 'bp_directory_members_item', function () use ( $wpide_bp_directory_fields ) {
if ( ! bp_is_active( 'xprofile' ) ) {
return;
}
$user_id = bp_get_member_user_id();
// Fields this member has hidden from the current viewer.
$hidden = array_map( 'intval', (array) bp_xprofile_get_hidden_fields_for_user( $user_id, bp_loggedin_user_id() ) );
foreach ( $wpide_bp_directory_fields as $field ) {
$field_id = (int) xprofile_get_field_id_from_name( $field );
if ( ! $field_id || in_array( $field_id, $hidden, true ) ) {
continue;
}
$value = xprofile_get_field_data( $field_id, $user_id, 'comma' );
if ( $value ) {
printf( '<div class="wpide-bp-field wpide-bp-field-%1$d">%2$s</div>', (int) $field_id, wp_kses_post( $value ) );
}
}
} );
Notes
Use the exact field name from Users > Profile Fields. Field visibility settings are respected.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.