如何让WordPress网站成为访问者的凭证?

时间:2018-02-28 作者:Gufran Hasan

我开发了一个WordPress网站。它位于实时服务器上,但处于开发模式。我想如果有人访问我的网站。它应该在加载站点之前请求密码或访问令牌。

是否有实现此功能的方法。

注意:我已经把代码放在了有效的答案中。请检查一下。这是好方法还是有更好的方法。

谢谢

2 个回复
最合适的回答,由SO网友:Gufran Hasan 整理而成

我已将以下代码放入索引中。php文件。正如我所看到的那样,它工作得很好。

define(\'WP_USERNAME\', \'PassW0rd$2017\');

$error_msg = \'\';
$status = session_status();

if (PHP_SESSION_DISABLED === $status) {
    // That\'s why you cannot rely on sessions!
    // return;
}
if (PHP_SESSION_NONE === $status) {
    session_start();
}
if (isset($_SESSION[\'user_name\']) && $_SESSION[\'user_name\'] != \'\' && $_SESSION[\'user_name\'] == WP_USERNAME) {
    // -------------
} else {

    if (isset($_POST[\'user_name\']) && $_POST[\'user_name\'] != \'\') {

        if ($_POST[\'user_name\'] == WP_USERNAME) {

            $_SESSION[\'user_name\'] = $_POST[\'user_name\'];
            echo \'<script>location.reload();</script>\';

        } else {
            // $_SESSION[ \'user_name\' ] = $_POST[\'user_name\'];
            $error_msg = \'Invalid access token, Please try again.\';
            // echo \'<script>location.reload();</script>\';
        }

    }

    echo \'<div style="width: 350px;margin: 200px auto;padding: 10px;">\';

    if ($error_msg) {
        echo \'<p style="color:#940d0d">\' . $error_msg . \'</p>\';
    }

    echo \'<form method="POST" action="">\';
    echo \'<label>Please Access token before visiting this site.</label><br/>\';
    echo \'<input type="text" name="user_name" style="padding: 5px;width: 100%;margin-top: 10px;"><br/>\';
    echo \'<input type="submit" value="Submit to Access" style="padding: 8px 12px;margin-top: 10px;background: #0dc176;border: 0;color: #fff;cursor: pointer;font-size: 18px;">\';
    echo \'</form></div>\';

    exit();

}

SO网友:scytale

您可以使用“基本身份验证”对Web服务器上的根目录(WordPress root)进行密码保护。E、 g.如果你有Apache with Cpanel.

或者,对于WordPress本身,您可以使用auth_redirect. 如果用户未登录,则会将其重定向到登录页面,登录后会将其重定向回所请求的页面。

只需将其添加到函数中即可。php或更好的版本仍然将其作为一个插件,您可以激活/停用:

if ( ! is_user_logged_in() && strpos($_SERVER[\'REQUEST_URI\'],\'wp-login.php\') === false) {
  auth_redirect();
}
以上假设登录是标准的(wp login.php),并确保不会在登录页面本身上执行auth\\u重定向(否则您将有一个无限重定向循环)。

结束

相关推荐

自定义“wp_login.php?action=lostpassword”并重置密码

我有一份有效的定制登记表。然后,在这个表单上,我有“忘记密码”链接。这个不太好用。“忘记密码”表单的设计可以;输入登录名或电子邮件地址以接收电子邮件并更改密码。我有两个案例:如果登录为空或为假,如果登录正确,我有以下代码://traitement des erreurs de connexion $errorlost2 = false; if ( !empty( $_POST ) ) { $user_login = $_POST[\'user_login\'];