我的网站前端有 WordPress 登录表单,允许我的用户无需访问 wp-login.php 或离开“主题”或网站即可登录。
如果您转到http://westendmediacentre.com/dev然后单击“登录”,您可以看到表单出现在 jQuery 弹出窗口中。我的代码如下:
表单代码:
<div class="login-form">
<form action="<?php echo get_option('home'); ?>/wp-login.php" method="post">
<input type="text" name="log" id="log" value="Username<?php echo wp_specialchars(stripslashes($user_login), 1) ?>" size="20" class="login-fields" onclick="this.value='';" onblur="this.value=!this.value?'Username':this.value;"/>
<input type="password" name="pwd" id="pwd" value="Password" size="20" class="login-fields" onclick="this.value='';" onblur="this.value=!this.value?'Password':this.value;"/>
<input type="submit" name="submit" value="Login" class="login-button" />
<input type="hidden" name="redirect_to" value="<?php echo $_SERVER['REQUEST_URI']; ?>" />
</form>
</div>
jQuery:
$('.button-login').click(function() {
$('.login-box').fadeIn('slow', function() {
// Animation complete
});
$(".login-box").css({'z-index' : '10000'});
$("#the-lights").css({'display' : 'block'});
$("#the-lights").css({'z-index' : '1'});
$("#the-lights").fadeTo("slow",0.7);
});
$('.login-box-close').click(function() {
$('.login-box').fadeOut('fast', function() {
// Animation complete
});
$("#the-lights").fadeTo("slow",0);
$("#the-lights").css({'display' : 'none'});
});
这工作得很好,但是,如果您尝试使用一些错误的凭据登录,您会被重定向到 WordPress 页面并给出错误。
我想做的是让这些错误出现在我的 jQuery 弹出窗口中,这样当您尝试使用错误的凭据登录时,它会在表单上方或下方给出错误消息,而不是重定向到另一个页面并显示错误。
我尝试按照本教程进行操作,但是它不适用于我现有的代码:http://www.tutorialstag.com/custom-wordpress-login-without-using-a-plugin.html
如果有人可以发布可行的解决方案,我将不胜感激
最佳答案
这都是关于 wordperess 的结构,首先您应该知道,即使您提供正确或错误的登录凭据,您的结构也会将用户重定向到 wp-login.php (因为)
< ?php echo get_option('home'); ?>/wp-login.php
行(我的意思是您只是将您的用户名和密码发布到 wp-login.php)
然后,如果提供的信息正确,则 WordPress 再次立即将用户重定向到主页,否则显示错误(具有抖动效果),您可以在 wp-login.php 文件中找到所有这些操作。
您可以使用两种不同的选项。
- 您可以像这样破解 wp-login.php 文件
如果用户没有提供正确的用户名/密码,则让他重定向回 http://www.westendmediacentre.com/dev/ - 您可以使用 Ajax 验证构建自己的登录机制(我的意思是您准备一个用于数据库连接的 php 文件并从数据库检索用户名和密码并将结果发送回您的登录系统)
如果选择第二种方式,可以控制this邮政。这非常有用。
关于jquery - jQuery 弹出窗口中的 WordPress 登录 - 如何使用 jQuery Ajax 验证登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8021309/