فروشگاه فیگووب

تغییر آدرس صفحه ورود وردپرس و ساخت صفحه لاگین سفارشی برای سایت خود

وردپرس محبوب ترین سیستم مدیریت محتوای موجود برای ناشران است. با این حال ، محبوبیت همراه با تهدیدهای جدی امنیتی است زیرا بسیاری از هکرها وب سایت های وردپرس را هدف قرار می دهند. یکی از مشکلات امنیتی رایج در استفاده از وردپرس ، ادرس URL ورود به سیستم است. وردپرس URL ورود به سیستم را با فرمت استاندارد برای همه نصب ها اختصاص می دهد. اکثر مردم هنوز آنرا حفظ می کنند ، با این حال ، ما توصیه می کنیم آن را به دلایل امنیتی تغییر دهید. در این مقاله ، نحوه تغییر ادرس URL ورود به سیستم وردپرس را با استفاده از روش های مختلف توضیح خواهیم داد . 

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

چگونه می توان به داشبورد وردپرس وارد شد؟

قبل از شروع کار با نحوه تغییر URL ورود به سیستم برای وب سایت شما ، باید ببینیم که به طور پیش فرض چگونه کار می کند. معمولاً URL پانل مدیریت سایت وردپرس به شرح زیر است:

https://www.yourwebsite.com/wp-login.php
https://www.yourwebsite.com/wp-admin
صفحه ورود به وردپرس

برای ورود به داشبورد سایت خود می توانید نام کاربری یا ایمیل و سپس رمز ورود خود را تایپ کنید.

چرا باید آدرس ورود به سیستم را تغییر دهید؟

همانطور که اشاره کردیم ، وردپرس از همان قالب برای آدرس ورود به سیستم برای هر سایت استفاده می کند که به صورت yourwebsite.com/wp-login.php است. تغییر این URL یکی از بهترین کارهایی است که می توانید در مورد امنیت برای سایت خود انجام دهید. هکرها و ربات های خودکار می توانند سعی کنند با اضافه کردن “/wp-login.php” پس از آدرس وب سایت ، به وب سایت شما وارد شوند . اگر از گذرواژه ضعیف استفاده می کنید ، آنها می توانند به راحتی به پنل مدیریت شما دسترسی پیدا کنند. این حمله Brute Force Attack نامیده می شود که یکی از تهدیدهای محبوب سایت های وردپرسی است. با تغییر آدرس ورود به سایت خود می توانید آنها را مسدود کنید.

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

قبل از تغییر URL ورود به سیستم چه کاری باید انجام دهید؟

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

به یاد داشته باشید ، تغییر URL ورود به سیستم در وردپرس ممکن است شما را از پنل مدیریت خارج کند. این ممکن است زمانی ایجاد شود که شما یک افزونه caching در سایت خود داشته باشید. بنابراین ، قبل از تغییر URL ، پیوند ثابت را یادداشت کنید و صفحه را از ذخیره سازی در تنظیمات افزونه خود حذف کنید..

این کد مشکلی برای سایتم ایجاد نمی کند؟

خیر این کد هیچ مشکلی برای سایت شما ایجاد نمی کند فقط کار این کد تغییر صفحه wp-login.php وردپرس است

شروع آموزش

اول از هر کاری از فایل functions.php خود یک بکاپ بگیرید تا بتوانید کدهای قبل را بر گردانید.

وارد پنل مدیریت وردپرس شوید و به بخش تنظیمات >> پیوندهای یکتا بروید و پیوند یکتا را روی نام نوشته قرار دهید. به عکس زیر دقت دهید

اگر تنظیمات بالا انجام دادید یک فایل با هر نامی که دوست دارید در مسیر قالب فعال وردپرس بسازید و کدهای زیر را به آن اضافه کنید قرار دهید. در این مرحله ما فراید صفحه سفارشی رو انجامی می دهیم.

<?php
/**
 * Template Name: صفحه ورود
 */
get_header();
?>
<style>
.container {
    padding-right: 15px;
    padding-left: 15px;
    padding-top: 15px;
    margin-right: auto;
    margin-left: auto;
    width: 100%;
}
.box-center-form {
    width: 30%;
    margin-left: auto;
    margin-right: auto;
    float: none;
    background: #f1f0f0;
    padding: 1.5em!important;
    position: relative;
    margin-bottom: 1.5em;
    box-shadow: 0px 0px 4px 1px #3333;
    border-radius: 3px;
}
.box-heading{
    font-size: 23px;
    line-height: 1.575em;
    font-weight: 400;
    text-align: center;
    margin: 0 0 30px;
    color: #14485f;
}
.ul-errors {
    background: #d00000;
    margin: 0 auto 15px;
    padding: 9px;
    border-radius: 5px;
    font-weight: 700;
    color: #fff;
    text-align: center;
}
.ul-errors li {
	list-style:none;
}
.login-info {
    background: #00a77a;
    margin: 0 auto 15px;
    padding: 9px;
    border-radius: 5px;
    font-weight: 700;
    color: #fff;
    text-align: center
}
.figu-form {
    width: 100%;
    border-radius: 5px;
    border: 2px solid #9e9e9e;
}
.figu-btn-login{
    width: 100%;
    background: #f44336;
    color: #fff;
    font-size: 16px;
    border-radius: 5px;
    border: 0;
    padding: 8px;
}
</style>
<div class="container">
    <div class="box-center-form">
        <h1 class="box-heading">
            ورود کاربر
        </h1>
        <div class="login-form-container">
            <?php
			if (isset( $_REQUEST['logged_out'] ) && $_REQUEST['logged_out'] == true){
				echo '<p class="login-info">هم اکنون از سایت خارج شده اید ، در صورت تمایل دوباره وارد شوید.</p>';
			}
            if ( isset( $_REQUEST['login'] ) ) {
                $error_codes = explode( ',', $_REQUEST['login'] );
                $html_out = '';
                foreach ( $error_codes as $code ) {
                    switch (trim($code))  {
                        case 'empty_username':
                            $html_out .= '<li>لطفا نام کاربری خود را وارد کنید</li>';
                        break;
                        case 'empty_password':
                            $html_out .= '<li>لطفا رمز عبور خود را وارد کنید</li>';
                        break;
                        case 'invalid_username':
                            $html_out .= '<li>نام کاربری وارد شده معتبر نمی باشد</li>'; 
                        break; 
                        case 'incorrect_password':
                            $html_out .= '<li>رمز عبور وارد شده معتبر نمی باشد</li>';
                        break;
                        default:
                            $html_out .= '<li>خطایی رخ داده لطفا مجدد تلاش کنید</li>';
                    }
                }
                echo '<ul class="ul-errors">';
                echo $html_out;
                echo '</ul>';
            }
			if(is_user_logged_in()) {
                echo 'کاربر گرامی، شما در حال حاضر لاگین شده اید.';
            } else { 
			?>
                <form method="post" action="<?php echo wp_login_url(); ?>">
                    <p class="login-username">
                        <label for="user_login">نام کاربری</label>
                        <input type="text" name="log" id="user_login" class="figu-form">
                    </p>
                    <p class="login-password">
                        <label for="user_pass">رمز عبور</label>
                        <input type="password" name="pwd" id="user_pass" class="figu-form">
                    </p> 
                    <p class="login-remember">
                        <label><input name="rememberme" type="checkbox" id="rememberme" value="forever">مرا به خاطر بسپار</label>
                    </p>
                    <p class="login-submit">
                        <input type="submit" value="ورود" class="figu-btn-login">
                    </p>
                </form>
                <a class="forgot-password" href="<?php echo wp_lostpassword_url(); ?>">
                    رمز خود را فراموش کرده اید؟
                </a>
            <?php } ?>
        </div>
    </div>
</div>
<?php get_footer();?>

بعد از مراحل بالا کد زیر را به اخر فایل functions.php قالب اضافه کنید.

/*
 * figuweb.com
 *
 * redirected figuweb login to link
 */
add_action( 'login_form_login', 'redirect_to_custom_login');
function redirect_to_custom_login() {
    if ( $_SERVER['REQUEST_METHOD'] == 'GET' ) {
        $redirect_to = isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : null;
     
        if ( is_user_logged_in() ) {
            redirect_logged_in_user( $redirect_to );
            exit;
        }
 
        // The rest are redirected to the login page
        $login_url = home_url( 'user-login' );
        if ( ! empty( $redirect_to ) ) {
            $login_url = add_query_arg( 'redirect_to', $redirect_to, $login_url );
        }
 
        wp_redirect( $login_url );
        exit;
    }
}

function redirect_logged_in_user( $redirect_to = null ) {
    $user = wp_get_current_user();
    if ( user_can( $user, 'manage_options' ) ) {
        if ( $redirect_to ) {
            wp_safe_redirect( $redirect_to );
        } else {
            wp_redirect( admin_url() );
        }
    } else {
        wp_redirect( home_url() );
    }
} /*
 * figuweb function page login
 * site: fguweb.com
 */
function redirect_logged_in_user( $redirect_to = null ) {
    $user = wp_get_current_user();
    if ( user_can( $user, 'manage_options' ) ) {
        if ( $redirect_to ) {
            wp_safe_redirect( $redirect_to );
        } else {
            wp_redirect( admin_url() );
        }
    } else {
        wp_redirect( home_url() );
    }
}
add_action( 'login_form_login', 'redirect_to_custom_login');
function redirect_to_custom_login() {
    if ( $_SERVER['REQUEST_METHOD'] == 'GET' ) {
        $redirect_to = isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : null;
     
        if ( is_user_logged_in() ) {
            redirect_logged_in_user( $redirect_to );
            exit;
        }
 
        // The rest are redirected to the login page ( figuweb.com )
        $login_url = home_url( 'user-login' );
        if ( ! empty( $redirect_to ) ) {
            $login_url = add_query_arg( 'redirect_to', $redirect_to, $login_url );
        }
 
        wp_redirect( $login_url );
        exit;
    }
}
/*
 * login redirect page => user_login_page
 */
add_filter( 'login_redirect', 'redirect_after_login' , 10, 3 );
function redirect_after_login( $redirect_to, $requested_redirect_to, $user ) {
    $redirect_url = home_url();
 
    if ( ! isset( $user->ID ) ) {
        return $redirect_url;
    }
 
    if ( user_can( $user, 'manage_options' ) ) {
        // Use the redirect_to parameter if one is set, otherwise redirect to admin dashboard.
        if ( $requested_redirect_to == '' ) {
            $redirect_url = admin_url();
        } else {
            $redirect_url = $requested_redirect_to;
        }
    } else {
        // Non-admin users always go to their account page after login
        $redirect_url = home_url();
    }
 
    return wp_validate_redirect( $redirect_url, home_url() );
}

add_filter( 'authenticate', 'maybe_redirect_at_authenticate' , 101, 3 );
function maybe_redirect_at_authenticate( $user, $username, $password ) {
    if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) {
        if ( is_wp_error( $user ) ) {
            $error_codes = join( ',', $user->get_error_codes() );
            $login_url = home_url( 'user-login' );
            $login_url = add_query_arg( 'login', $error_codes, $login_url );
 
            wp_redirect( $login_url );
            exit;
        }
    }
    return $user;
}

add_action( 'wp_logout', 'redirect_after_logout' );
function redirect_after_logout() {
    $redirect_url = home_url( 'user-login' . '?logged_out=true' ); /*==> نامک برگه لاگین شما user-login */
    wp_safe_redirect( $redirect_url );
    exit;
}/*
 * figuweb.com
 *
 * redirected figuweb login to link
 */
add_action( 'login_form_login', 'redirect_to_custom_login');
function redirect_to_custom_login() {
    if ( $_SERVER['REQUEST_METHOD'] == 'GET' ) {
        $redirect_to = isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : null;
     
        if ( is_user_logged_in() ) {
            redirect_logged_in_user( $redirect_to );
            exit;
        }
 
        // The rest are redirected to the login page
        $login_url = home_url( 'user-login' );
        if ( ! empty( $redirect_to ) ) {
            $login_url = add_query_arg( 'redirect_to', $redirect_to, $login_url );
        }
 
        wp_redirect( $login_url );
        exit;
    }
}

function redirect_logged_in_user( $redirect_to = null ) {
    $user = wp_get_current_user();
    if ( user_can( $user, 'manage_options' ) ) {
        if ( $redirect_to ) {
            wp_safe_redirect( $redirect_to );
        } else {
            wp_redirect( admin_url() );
        }
    } else {
        wp_redirect( home_url() );
    }
} 

حالا اگر کار های بالا را انجام دادید به پیشخوان وردپرس خود برگردید و یک برگه به هر نامی که دوست دارید بسازید که ما برگه صفحه ورود رو انتخاب کردیم. اگر برگه رو ساخت نامک ان را user-login قرار دهید و قالب برگه را ( صفحه ورود ) انتخاب کنید.

بعد از انجام مراحل بالا با وارد کردن ادرس sitename.com/wp-login.php خودکار این خاموش و به آدرس sitename.com/user-login ریدایرکت خواهد شد و با صفحه ای زیر مواجه خواهید شد

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

راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام فیگووب عضو شوید.

نظر شما در این‌باره چیست؟

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

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