[buddypress-trac] [BuddyPress Trac] #5445: Improve consistency of bp_core_get_user_* use
buddypress-trac
noreply at wordpress.org
Mon Mar 3 13:55:39 UTC 2014
#5445: Improve consistency of bp_core_get_user_* use
--------------------------+-----------------
Reporter: boonebgorges | Owner:
Type: enhancement | Status: new
Priority: normal | Milestone: 2.0
Component: Core | Version:
Severity: normal | Keywords:
--------------------------+-----------------
There are a number of generic user-related functions that are used
frequently throughout BuddyPress: `bp_core_get_user_displayname()`,
`bp_core_get_user_domain()`, `bp_core_get_core_userdata()`, etc. These
frequently used functions define what I think of as the "canonical" logic
for determining the values in question. For example, `_displayname()`
checks and sets the object cache as necessary; it prefers xprofile data if
it can be found, followed by display_name and then user_nicename; it
creates the relevant xprofile fielddata if none is found for that user.
And so on.
However, there are many places in BP where we don't use these functions,
but instead query directly for the data in question. This creates
inconsistencies in the values displayed, and also makes it very difficult
to ensure proper caching.
Let's use this ticket for a few things:
- Generalizing the functions in question as necessary. In particular, it's
critical to have the logic abstracted so that we can fetch more than one
_displaname, _domain, etc with a single database call, while still
respecting the canonical logic. The simplest way to do this is by creating
new, plural functions (like `bp_core_get_user_displaynames()`), move most
of the business logic there, and then turn the singular function into a
wrapper. I've already done this locally for _displayname(), and it's
working well.
- Find places in BP where we are bypassing the canonical functions, and
refactor to use them. For example, the xprofile component filters
`bp_user_query_populate_extras` to override the display name. But this
does not hit the proper caches, nor does it follow the precedence logic of
the core displayname function. So it should be migrated over. And so on.
--
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/5445>
BuddyPress Trac <http://buddypress.org/>
BuddyPress Trac
More information about the buddypress-trac
mailing list