bp_members_prefetch_member_type( BP_User_Query $bp_user_query )
Pre-fetch profile type data when initializing a Members loop.
Description
Parameters
- $bp_user_query
-
(BP_User_Query) (Required) BP_User_Query object.
Source
File: bp-members/bp-members-cache.php
function bp_members_prefetch_member_type( BP_User_Query $bp_user_query ) { $uncached_member_ids = bp_get_non_cached_ids( $bp_user_query->user_ids, 'bp_member_member_type' ); $member_types = bp_get_object_terms( $uncached_member_ids, bp_get_member_type_tax_name(), array( 'fields' => 'all_with_object_id', ) ); // Rekey by user ID. $keyed_member_types = array(); foreach ( $member_types as $member_type ) { if ( ! isset( $keyed_member_types[ $member_type->object_id ] ) ) { $keyed_member_types[ $member_type->object_id ] = array(); } $keyed_member_types[ $member_type->object_id ][] = $member_type->name; } $cached_member_ids = array(); foreach ( $keyed_member_types as $user_id => $user_member_types ) { wp_cache_set( $user_id, $user_member_types, 'bp_member_member_type' ); $cached_member_ids[] = $user_id; } // Cache an empty value for users with no type. foreach ( array_diff( $uncached_member_ids, $cached_member_ids ) as $no_type_id ) { wp_cache_set( $no_type_id, '', 'bp_member_member_type' ); } }
Changelog
Version | Description |
---|---|
BuddyPress 2.2.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.