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