jquery - jQuery 弹出窗口中的 WordPress 登录 - 如何使用 jQuery Ajax 验证登录?

标签 jquery wordpress authentication

我的网站前端有 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/

相关文章:

jquery - MapBox/Leaflet L.geoJSON 分组叠加

javascript - 从同一页面、同一类的特定表单中获取提交

jquery - 如何使用 jQuery 获取 div 中的数据

php - Wordpress 站点中的 "Header already sent"错误

php - 如何使用ajax处理多个echo语句

jquery - 单击后禁用提交按钮

jquery - Caroufredsel 分页文本?

php - PDO登录页面,当用户连接时选择指定行并对其执行某些操作

javascript - 使用 Ajax 弹出窗口进行基本身份验证登录?

ruby-on-rails - 从 github 隐藏我的敏感信息(例如密码)