BuddyPress administrator gebruikers verbergen in de zoekresultaten

BuddyPress administrator gebruikers verbergen in zoekresultaten.Probleem:
Je hebt een WordPress met BuddyPress website gemaakt en je wilt gebruikers met de rol administrator verbergen in de zoekresultaten. De reden hiervoor is bijvoorbeeld omdat je een sociaal netwerk hebt en de gebruikers met de rol administrator zich alleen bezighouden met het beheren van de website. Deze tonen in de zoekresultaten heeft daarom geen nut.

Oplossing:
Voeg onderstaande functie toe aan het functions.php bestand van je thema. Heb je een gratis of betaald thema dan zet je deze functie natuurlijk in het functions.php bestand van je child theme.

De variabele $role bevat de slug naam van de rol waarvan de gebruikers verborgen moeten worden. De code haalt een lijst met database id’s op van gebruikers en geeft die aan BuddyPress zodat BuddyPress weet welke gebruikers niet getoond mogen worden.

Werkt de functie niet? Pas dan de prioriteit in de add_filter call aan. Mogelijk zijn er nog andere functies binnen jouw website die na onderstaande functie worden uitgevoerd. Deze zouden een negatieve invloed kunnen hebben.

Bekijk ook de andere berichten met handige BuddyPress functies.

/**
 * Remove the administrator from the search results.
 */
function child_buddypress_exclude_users_by_role( $args ) {
    if( is_admin() && ! defined( 'DOING_AJAX' ) ) {
        return $args;
    }

    $excluded = isset( $args['exclude'] )? $args['exclude'] : array();
    if( !is_array( $excluded ) ) {
        $excluded = explode(',', $excluded );
    }

    $role 	  = 'administrator';
    $user_ids = get_users( array( 'role' => $role ,'fields'=>'ID') );
    $excluded = array_merge( $excluded, $user_ids );

    $args['exclude'] = $excluded;

    return $args;
}
add_filter( 'bp_after_has_members_parse_args', 'child_buddypress_exclude_users_by_role', 10, 1 );

Oplossing getest op:
WordPress 4.9.1 met BuddyPress 2.9.2

Laat een reactie achter

Your email address will not be published. Required fields are marked *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.