جداسازی کامل لاگین ادمین از کاربران دیگر

سلام
چطور میشه در وردپرس، بتونیم بخش لاگین کاربران عادی رو بطور کامل از مدیر جدا کرد؟
صفحه لاگین رو میشه جدا کرد که هرکدوم از صفحه مربوط به خودشون وارد بشن ولی خب اگر یکی بیاد از صفحه لاگین مشتری ها اطلاعات ادمین رو بزنه وارد میشه.
میخوام کاملا ازهم جدا بشن که از صفحه کاربران عادی نشه به پنل ادمین وارد شد.

1 پسندیده

کافیه یه افزونه ثبت نام و ورود و مدیریت کاربران برای وردپرس استفاده کنی تا به راحتی این کار رو انجام بدی و حتما صفحه پیش فرض ورود وردپرس رو تغییر آدرس بده. افزونه مدیریت کاربران هم بهترینش که رایگان هم هست اسمش ultimate member هست

بنده افزونه ای سراغ ندارم که بتونه هسته لاگین پیش‌فرض وردپرس رو از کاربران دیگه (مثلا مشتری های ووکامرس) جدا کنه.

با این افزونه ها میشه مثلا برای مشتری ها یه صفحه لاگین ساخت ولی اگر بنده بیام از همون صفحه لاگین مخصوص مشتری ها اطلاعات ادمین رو بزنم وارد پنل ادمین میشه و بالعکس.

صفحه لاگین ها مجزا میشه ولی هسته لاگین تغییری نکرده. این بنظرم خیلی تاثیر داره در افزایش امنیت اطلاعات ادمین.
چون معمولا صفحه ورود پیشخوان وردپرس رو مخفی میکنن که برای همه قابل دسترس نباشه ولی خب در سایتهای فروشگاهی که مشتری یه صفحه لاگین جدا داره این کار بی فایده هست چراکه از همون صفحه هم میشه وارد پیشخوان شد.

بنظرم این مشکل بزرگی برای امنیت سایت هست.
@arta @Hosein @Angel
چرا اینقدر فعالیت کم شده هیچکس جواب نمیده تاپیک هارو؟

درود
این روش رو تست کنید. شخصا امتحان نکردم، بنابراین روی لوکال هاستی یا جایی اجرا کنید که اگر احیانا مشکلی وجود داشت، برای سایتتون رخ نده.
فانکشن زیر رو به فایل functions.php قالب اضافه کنید.

function my_login_redirect( $redirect_to, $request, $user ) {
    global $user;
    if ( isset( $user->roles ) && is_array( $user->roles ) ) {
        //check for admins
        if ( in_array( 'administrator', $user->roles ) ) {
            // redirect them to the default place
            //make wp-admin as your default place, if you customized it
            return $redirect_to;
        } else {
            return home_url('/login/');
        }
    } else {
        return $redirect_to;
    }
}

add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );

تو خط دهم به جای login نامک صفحه ورود خودتون رو قرار بدین.
این کد در واقع میاد بر اساس نقش کاربری ریدایرکت انجام میده و اگر اطلاعات ورود هم درست باشن، لاگین انجام نمیگیره و بر اساس صفحه ورودی که برای نقش کاربری تعیین شده ریدایرکت میشه. متناسب با نیازتون میتونید یه بخشی از کد رو بردارید.