我正在为正在处理的主题编写自定义前端登录页。登录页面尽可能使用wordpress功能(例如。,wp_signon, wp_set_auth_cookie, ...等等)。
对于登录,我执行以下操作
// Detect if we should remember the user
$remember = false;
if (isset($_POST[\'remember_me\'])) {
$remember = true;
}
// Sign in to WordPress
$creds = array(
\'user_login\' => $userlogin,
\'user_password\' => $password,
\'remember\' => $remember
);
$logged_on_user = wp_signon($creds, false);
请注意,如果
remember 设置为
true, 这将允许WordPress记住登录的用户(即,当用户关闭窗口时,无需再次登录)。这
remember 字段基于用户在登录时通过单击“记住我”复选框所做的选择。
在我的代码中,我喜欢检测用户是否设置了rememeber 字段设置为true。我不确定如何检测授权cookie并读取此值。我也找不到这方面的文档。那么,我该怎么做呢?谢谢
根据Dan在下面评论中的要求编辑,下面是登录html的样子
<form method="post">
<input type="hidden" name="form_name" value="login">
<input type="hidden" name="nonce_key" value="<?php echo wp_create_nonce(\'nonce-key\'); ?>" />
<label for="user_login">Email or Username</label>
<input type="text" name="user_login" value="<?php echo (isset($_POST[\'user_login\']) ? htmlspecialchars($_POST[\'user_login\']) : \'\'); ?>" />
<label for="user_password">Password</label>
<input type="password" name="user_password" value="" />
<input type="checkbox" name="remember_me" <?php echo (isset($_POST[\'remember_me\']) ? \'checked\' : \'\'); ?> />
<label for="remember_me">Remember me</label>
<a href="<?php echo $reset_password_page_url; ?>">Forgot your password?</a>
<input type="submit" name="submit" value="Log In" />
</form>
最合适的回答,由SO网友:Mark Kaplun 整理而成
你不能也不应该这样做。
该设置的正确全名应为“在此浏览器上记住我(14天)”。关键是它甚至不是基于用户的设置,在同一台具有不同浏览器会话的计算机上,它可以具有不同的值。
此外,由于它是完全由用户控制的,您不应该依赖它来处理用户在登录时在表单中实际发送的内容。
当然,如果您有一个上述问题不适用的用例,您可以设置额外的cookie,指定用户选择“记住我”