Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
04/02/2018 03:51:24 AM (7 years ago)
Author:
r-a-y
Message:

Members: Conditionally load action and screen functions.

This commit conditionally loads action and screen function code for the
Members component, utilizing the 'bp_late_include' hook introduced in
r11884.

Previously, we loaded these functions at all times, which is unnecessary
when a user is not on a BuddyPress members page. Now, we only load this
code when needed.

See #7218.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-members/classes/class-bp-members-component.php

    r11360 r11927  
    6060            'actions',
    6161            'filters',
    62             'screens',
    6362            'template',
    6463            'adminbar',
     
    7877
    7978        parent::includes( $includes );
     79    }
     80
     81    /**
     82     * Late includes method.
     83     *
     84     * Only load up certain code when on specific pages.
     85     *
     86     * @since 3.0.0
     87     */
     88    public function late_includes() {
     89        // Bail if PHPUnit is running.
     90        if ( defined( 'BP_TESTS_DIR' ) ) {
     91            return;
     92        }
     93
     94        // Members.
     95        if ( bp_is_members_component() ) {
     96            // Actions - Random member handler.
     97            if ( isset( $_GET['random-member'] ) ) {
     98                require $this->path . 'bp-members/actions/random.php';
     99            }
     100
     101            // Screens - Directory.
     102            if ( bp_is_members_directory() ) {
     103                require $this->path . 'bp-members/screens/directory.php';
     104            }
     105        }
     106
     107        // Members - User main nav screen.
     108        if ( bp_is_user() ) {
     109            require $this->path . 'bp-members/screens/profile.php';
     110        }
     111
     112        // Members - Theme compatibility.
     113        if ( bp_is_members_component() || bp_is_user() ) {
     114            new BP_Members_Theme_Compat();
     115        }
     116
     117        // Registration / Activation.
     118        if ( bp_is_register_page() || bp_is_activation_page() ) {
     119            if ( bp_is_register_page() ) {
     120                require $this->path . 'bp-members/screens/register.php';
     121            } else {
     122                require $this->path . 'bp-members/screens/activate.php';
     123            }
     124
     125            // Theme compatibility.
     126            new BP_Registration_Theme_Compat();
     127        }
    80128    }
    81129
Note: See TracChangeset for help on using the changeset viewer.