您可以使用几个不同的挂钩(从wp_signon
):
但您可以尽最大努力覆盖
pluggable wp_authenticate
(来自
wp-includes/pluggable.php
):
if ( !function_exists(\'wp_authenticate\') ) :
/**
* Checks a user\'s login information and logs them in if it checks out.
*
* @since 2.5.0
*
* @param string $username User\'s username
* @param string $password User\'s password
* @return WP_Error|WP_User WP_User object if login successful, otherwise WP_Error object.
*/
function wp_authenticate($username, $password) {
$username = sanitize_user($username);
$password = trim($password);
$user = apply_filters(\'authenticate\', null, $username, $password);
if ( $user == null ) {
// TODO what should the error message be? (Or would these even happen?)
// Only needed if all authentication handlers fail to return anything.
$user = new WP_Error(\'authentication_failed\', __(\'<strong>ERROR</strong>: Invalid username or incorrect password.\'));
}
$ignore_codes = array(\'empty_username\', \'empty_password\');
if (is_wp_error($user) && !in_array($user->get_error_code(), $ignore_codes) ) {
do_action(\'wp_login_failed\', $username);
}
return $user;
}
endif;
你所需要做的就是定义你自己的
wp_authenticate
模拟操作并添加几行代码来进行日志记录。这是假设您还没有覆盖它的函数。
正如您在上述代码中所看到的,您可以使用: