我创建的自定义登录表单有点问题。
<?php if (!(current_user_can(\'level_0\'))){ ?>
<div class="login-form">
<form action="<?php echo get_option(\'home\'); ?>/wp-login.php" method="post" target="_blank">
<p>
<label for="log" id="user">Username</label>
<input type="text" name="log" id="log" value="<?php echo wp_specialchars(stripslashes($user_login), 1) ?>" size="20" />
</p>
<p>
<label for="password" id="pass">Password</label>
<input type="password" name="pwd" id="pwd" size="20" />
</p>
<input type="submit" name="submit" value="Login" class="button" />
<p>
<label for="rememberme"><input name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> Remember me</label>
<input type="hidden" name="redirect_to" value="<?php bloginfo(\'url\');?>/login-tournament/tournaments/"/>
</p>
</form>
</div>
<div id="recovertext"><a href="<?php echo get_option(\'home\'); ?>/wp-login.php? action=lostpassword">Recover password</a></div>
<div id="loginbox"><a href="<?php bloginfo(\'url\'); ?>/register">Not registered yet?</a></div>
<?php } else { ?>
<p class="login-text">You\'re already logged in.<br>Click here to view the <a href="http://MY-CUSTOM-REDIRECT-URL.com" target="_blank">Tournaments</a> page or you can <a href="<?php echo wp_logout_url( get_permalink() ); ?>" title="Logout"> Logout</a></p>
<?php }?>
成功登录将用户重定向到自定义URL,并在新窗口中打开自定义URL。(这工作正常)
我遇到的问题是,如果用户输入了错误的凭据,它们将被重定向到默认凭据wp-login.php
类型我需要用户停留在当前页面上并显示错误消息。我确实找到了这个snippet to prevent the redirect 它确实可以工作,但它会在新窗口中打开同一页。当输入错误的详细信息时,是否可以防止新窗口打开。(我仍然需要在成功登录时打开新窗口)
此外,如果在单击登录按钮时根本没有输入登录详细信息,它也会将用户发送到默认值wp-login.php
页是否有可能防止这种情况发生?