I ran into what I thought would be fairly common need for Buddypress theme development, the ability to pull data from a custom user profile field and display it. After searching a bit, I could only find way to pull either random fields, or all of the fields together. So after digging around in the core files, I found the pieces to put together my own function for the task.
1. Create the file “bp-custom.php” and place it directly in the plugins folder. Note, do not place it in the “buddypress” folder, otherwise it will be overwritten when upgrading. If the file exists, simply append to it rather than creating a new one.
2. Paste the following function in:
function bp_the_site_member_profile_data($field_name = '', $echo = 1) {
if( !$field_name ) {
return false;
}
global $site_members_template;
if( function_exists( 'xprofile_get_field_data' ) ) {
$data = xprofile_get_field_data( $field_name,
$site_members_template->member->id);
if( $echo ) {
echo "$data";
return true;
} else {
return $data;
}
}
}
3. You can now use the function ‘bp_the_site_member_profile_data(‘MyField’) in your templates (of course, substituting ‘MyField’ with the one you’d like to use). Note, this must be place inside a ‘Members Loop’ so that the $site_members_template variable is populated. Odds are, you’re inserting this near other profile data already in the loop, so there should be no problems.
UPDATE:
As of BuddyPress 1.2, this functionality has been included. While in the members loop, you can use the included function: ‘bp_member_profile_data( ‘field=the field name’ )’ to much the same effect.