/** * Get a profile field object. * * @since 1.1.0 * * @param int|object $field ID of the field or object representing field data. * @return BP_XProfile_Field|null Field object if found, otherwise null. */ function xprofile_get_field($field) { if ($field instanceof BP_XProfile_Field) { $_field = $field; } elseif (is_object($field)) { $_field = new BP_XProfile_Field(); $_field->fill_data($field); } else { $_field = BP_XProfile_Field::get_instance($field); } if (!$_field) { return null; } return $_field; }
/** * Retrieve a `BP_XProfile_Field` instance. * * @static * * @param int $field_id ID of the field. * @return BP_XProfile_Field|false Field object if found, otherwise false. */ public static function get_instance($field_id) { global $wpdb; $field_id = (int) $field_id; if (!$field_id) { return false; } $field = wp_cache_get($field_id, 'bp_xprofile_fields'); if (false === $field) { $bp = buddypress(); $field = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$bp->profile->table_name_fields} WHERE id = %d", $field_id)); wp_cache_add($field->id, $field, 'bp_xprofile_fields'); if (!$field) { return false; } } $_field = new BP_XProfile_Field(); $_field->fill_data($field); return $_field; }