مدت زمان تقریبی مطالعه: 1 دقیقه و 5 ثانیه

چگونه اعضای برخی نقش های کاربری را در دایرکتوری اعضا نمایش ندهیم؟

جزئیات

دسته بندی
منتشر شده در 1397/11/06
پسندها 0
بازدید 44
نظرات 0
منبع

توضیحات

سوال این بود که چطوری میتونیم تو دایرکتوری اعضا که همه کاربران سایت رو داره نمایش میده از جمله نقش کاربری مدیر ( نمیخواهید به دلایل امنیتی نام کاربری مدیران سایت مشخص بشه واسه سایر اعضا )، اعضای برخی از نقش های کاربری رو نمایش ندیم؟

 

میتونید از کدی که در زیر براتون آوردیم استفاده کنید، کدهای زیر رو بذارید داخل فایل functions.php قالب سایتتون و ذخیره اش کنید:

 

forbidden_roles : در داخل این متغییر که از نوع آرایه ای هست و در کدهای زیر مشاهده می کنید، نقش های کاربری که نمی خواهیم اعضای آنها در دایرکتوری اعضا نمایش داده بشوند رو وارد کردیم، در مثال زیر ما نقش های کاربری مدیر و ویرایشگر رو از نمایش در لیست دایرکتوری کاربران محروم کردیم.شما می تونید این نقش ها رو بر اساس نقش های کاربری تعریف شده در سایت خودتون تغییر بدید.

 

 
/**
 * Members Directory - Exclude Users By Role.
 */

function yz_exclude_members_directory_by_roles( $loop ) {
    if ( ! bp_is_members_directory() ) {
        return $loop;
    }
    // Get Forbidden Roles
    $forbidden_roles = array( 'subscriber', 'editor' );
    // Get Users List
    $users = get_users( array( 'role__in'=> $forbidden_roles, 'fields' => array( 'ID' ) ) );
    
    if ( empty( $users ) ) {
        return $loop;
    }
    // Get User Ids
    $users_ids = wp_list_pluck( $users, 'ID' );
    // Get Users Ids separated by ","
    $users_ids = implode( ',', $users_ids );
    if ( isset( $loop['exclude'] ) && ! empty( $loop['exclude'] ) ) {
        $loop['exclude'] =  $loop['exclude'] . ',' . $users_ids; 
    } else {
        $loop['exclude'] = $users_ids;
    }
    return $loop;
}
add_filter( 'bp_after_has_members_parse_args', 'yz_exclude_members_directory_by_roles' );

برچسب ها

درباره نویسنده

مطالب مرتبط

نظرات

دیدگاه خود را بیان کنید

ایمیل شما نمایش داده نخواهد شد. بخش های مورد نیاز با * علامت گذاری شده اند.

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.