Skip to:
Content

BuddyPress.org

Changeset 7911


Ignore:
Timestamp:
02/17/2014 08:27:26 AM (13 years ago)
Author:
r-a-y
Message:

Remove object cache for bp_core_get_user_domain() function.

This caused issues when using a persistent object cache and when the
members directory page slug was changed in the admin area.

Because bp_core_get_user_domain() has its own object cache that is
keyed to each individual user, cache invalidation becomes troublesome.

Since we are already caching the username, this makes caching the
user domain redundant. Thus, this commit removes the object
cache associated with the bp_core_get_user_domain() function, while
leaving the 'bp_core_get_user_domain_pre_cache' filter in place for
backwards compatibility.

Fixes #5402.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-members/bp-members-functions.php

    r7863 r7911  
    125125function bp_core_get_user_domain( $user_id, $user_nicename = false, $user_login = false ) {
    126126
    127         if ( empty( $user_id ) )
     127        if ( empty( $user_id ) ) {
    128128                return;
    129 
    130         if ( !$domain = wp_cache_get( 'bp_user_domain_' . $user_id, 'bp' ) ) {
    131                 $username = bp_core_get_username( $user_id, $user_nicename, $user_login );
    132 
    133                 if ( bp_is_username_compatibility_mode() )
    134                         $username = rawurlencode( $username );
    135 
    136                 $after_domain = bp_core_enable_root_profiles() ? $username : bp_get_members_root_slug() . '/' . $username;
    137                 $domain       = trailingslashit( bp_get_root_domain() . '/' . $after_domain );
    138                 $domain       = apply_filters( 'bp_core_get_user_domain_pre_cache', $domain, $user_id, $user_nicename, $user_login );
    139 
    140                 // Cache the link
    141                 if ( !empty( $domain ) ) {
    142                         wp_cache_set( 'bp_user_domain_' . $user_id, $domain, 'bp' );
    143                 }
    144         }
     129        }
     130
     131        $username = bp_core_get_username( $user_id, $user_nicename, $user_login );
     132
     133        if ( bp_is_username_compatibility_mode() ) {
     134                $username = rawurlencode( $username );
     135        }
     136
     137        $after_domain = bp_core_enable_root_profiles() ? $username : bp_get_members_root_slug() . '/' . $username;
     138        $domain       = trailingslashit( bp_get_root_domain() . '/' . $after_domain );
     139
     140        // Don't use this filter.  Subject to removal in a future release.
     141        // Use the 'bp_core_get_user_domain' filter instead.
     142        $domain       = apply_filters( 'bp_core_get_user_domain_pre_cache', $domain, $user_id, $user_nicename, $user_login );
    145143
    146144        return apply_filters( 'bp_core_get_user_domain', $domain, $user_id, $user_nicename, $user_login );
Note: See TracChangeset for help on using the changeset viewer.