Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
02/07/2015 08:32:55 PM (11 years ago)
Author:
boonebgorges
Message:

When prefetching member types in the loop, cache arrays instead of strings.

Member type caches should always be arrays of all member types for a user.

Props imath.
Fixes #6193.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-members/bp-members-cache.php

    r9210 r9447  
    2121    ) );
    2222
     23    // Rekey by user ID.
     24    $keyed_member_types = array();
     25    foreach ( $member_types as $member_type ) {
     26        if ( ! isset( $keyed_member_types[ $member_type->object_id ] ) ) {
     27            $keyed_member_types[ $member_type->object_id ] = array();
     28        }
     29
     30        $keyed_member_types[ $member_type->object_id ][] = $member_type->name;
     31    }
     32
    2333    $cached_member_ids = array();
    24     foreach ( $member_types as $member_type ) {
    25         wp_cache_set( $member_type->object_id, $member_type->name, 'bp_member_type' );
    26         $cached_member_ids[] = $member_type->object_id;
     34    foreach ( $keyed_member_types as $user_id => $user_member_types ) {
     35        wp_cache_set( $user_id, $user_member_types, 'bp_member_type' );
     36        $cached_member_ids[] = $user_id;
    2737    }
    2838
Note: See TracChangeset for help on using the changeset viewer.