wp-login.php WORDPRESS中的查询在哪里

时间:2012-02-14 15:56:58

标签: php wordpress content-management-system

我正在WORDPRESS中创建一个loginform,我希望对它进行验证,所以我试着查看wp-login.php以了解它们如何验证。但我没有找到我要找的东西。我想知道他们如何验证事物或他们需要什么输入来验证事物。我试图搜索wordpress论坛所有我能找到的插件,插件和更多的插件。我不想要一个插件。我想硬编码。所以请帮助我。

  1. 我想知道在哪里可以找到搜索用户用户名和密码的部分。
  2. 如果没有,请知道成功登录所需的内容。示例用户名或密码或其他。
  3. 顺便说一下,这里是wp-login.php。谢谢

2 个答案:

答案 0 :(得分:4)

确实,auth逻辑不在wp-login.php

Wordpress很大程度上依赖于钩子(actions and filters)。对于身份验证,this article解释了wordpress 2.8+中的一些过程。 AFAIK在3.x中仍然相同。

身份验证过程基于authenticate过滤器。过滤器队列中添加了两个钩子:

  • wp-includes/user.php中的wp_authenticate_username_password()(优先级20)(第68行)

  • wp-includes/user.php(第117行)中的wp_authenticate_cookie()(优先级30)

有关详细信息,请参阅文章。

我建议你不要直接破解核心,而是在此过滤器上添加一些具有更高优先级的钩子。

答案 1 :(得分:0)

开始查看第535行:

case 'login' :
default:
        $secure_cookie = '';
        $interim_login = isset($_REQUEST['interim-login']);

这似乎是登录功能。在第630行,您将获得登录表单的html:

<form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">
        <p>
                <label for="user_login"><?php _e('Username') ?><br />
                <input type="text" name="log" id="user_login" class="input" value="<?php echo esc_attr($user_login); ?>" size="20" tabindex="10" /></label>
        </p>

进行编辑,看看是否有效。