Skip to:
Content

BuddyPress.org

Changeset 10714


Ignore:
Timestamp:
04/20/2016 07:16:16 PM (3 years ago)
Author:
boonebgorges
Message:

URL routing: Filter the portion of the URI immediately after the 'members' slug.

This allows customizations for routing that is based on something other than
user_nicename.

Props kmb@…, r-a-y.
Fixes #6694.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-core/bp-core-catchuri.php

    r10497 r10714  
    211211
    212212    // URLs with BP_ENABLE_ROOT_PROFILES enabled won't be caught above.
    213     if ( empty( $matches ) && bp_core_enable_root_profiles() ) {
     213    if ( empty( $matches ) && bp_core_enable_root_profiles() && ! empty( $bp_uri[0] ) ) {
    214214
    215215        // Switch field based on compat.
    216216        $field = bp_is_username_compatibility_mode() ? 'login' : 'slug';
    217217
     218        /**
     219         * Filter the portion of the URI that is the displayed user's slug.
     220         *
     221         * eg. example.com/ADMIN (when root profiles is enabled)
     222         *     example.com/members/ADMIN (when root profiles isn't enabled)
     223         *
     224         * ADMIN would be the displayed user's slug.
     225         *
     226         * @since 2.6.0
     227         *
     228         * @param string $member_slug
     229         */
     230        $member_slug = apply_filters( 'bp_core_set_uri_globals_member_slug', $bp_uri[0] );
     231
    218232        // Make sure there's a user corresponding to $bp_uri[0].
    219         if ( !empty( $bp->pages->members ) && !empty( $bp_uri[0] ) && $root_profile = get_user_by( $field, $bp_uri[0] ) ) {
     233        if ( ! empty( $bp->pages->members ) && $root_profile = get_user_by( $field, $member_slug ) ) {
    220234
    221235            // Force BP to recognize that this is a members page.
     
    273287            // Are we viewing a specific user?
    274288            if ( $after_member_slug ) {
     289
     290                /** This filter is documented in bp-core/bp-core-catchuri.php */
     291                $after_member_slug = apply_filters( 'bp_core_set_uri_globals_member_slug', $after_member_slug );
     292
    275293                // If root profile, we've already queried for the user.
    276294                if ( $root_profile instanceof WP_User ) {
Note: See TracChangeset for help on using the changeset viewer.