我想在同一页上显示登录表单并处理登录,以便如果有任何登录错误,它应该在同一页上显示错误消息。
我添加了此功能:
add_filter( \'authenticate\', \'custom_authenticate_username_password\', 30, 3);
function custom_authenticate_username_password( $user, $username, $password ) {
if ( is_a($user, \'WP_User\') ) { return $user; }
if ( empty($username) || empty($password) )
{
$error = new WP_Error();
$user = new WP_Error(\'authentication_failed\', __(\'<strong>ERROR</strong>: Invalid username or incorrect password.\'));
return $error;
}
}
添加上述功能后,如何在自定义页面模板上实际显示错误消息?
SO网友:IlmarsL
将错误消息发送到自定义登录页面的一种方法是使用wp_login_failed 钩它可能看起来像这样:
add_action( \'wp_login_failed\', \'my_login_fail\' ); // hook failed login
function my_login_fail( $username ) {
//redirect to custom login page and append login error flag
wp_redirect(home_url( \'?page_id=4\' ) . "&login_error" );
exit;
}
显然你应该修改
wp_redirect 取决于您使用的永久链接。
然后,在自定义页面模板中,您可以检查login\\u错误标志并显示错误消息:
if (isset($_GET[\'login_error\'])){
//print error message or do something else
}