要在登录失败后重定向回自定义登录表单,请尝试以下代码:
// hook failed login
add_action(\'wp_login_failed\', \'my_front_end_login_fail\');
function my_front_end_login_fail($username){
// Get the reffering page, where did the post submission come from?
$referrer = add_query_arg(\'login\', false, $_SERVER[\'HTTP_REFERER\']);
// if there\'s a valid referrer, and it\'s not the default log-in screen
if(!empty($referrer) && !strstr($referrer,\'wp-login\') && !strstr($referrer,\'wp-admin\')){
// let\'s append some information (login=failed) to the URL for the theme to use
wp_redirect($referrer . \'?login=failed\');
exit;
}
}
您还必须检查密码或登录是否为空-当前端的登录表单(您的自定义登录表单)提交为空时,您将使用标准wp登录。再次使用php。要防止出现这种情况,请附加以下代码:
add_action( \'login_head\', \'my_frontend_login_no_pass_no_username\' );
function my_frontend_login_no_pass_no_username(){
$referrer = add_query_arg(\'login\', false, $_SERVER[\'HTTP_REFERER\']);
if ( (!isset($_REQUEST[\'user_login\']) || ( isset( $_REQUEST[\'user_login\'] ) && trim( $_REQUEST[\'user_login\'] ) == \'\' ) ) || (!isset($_REQUEST[\'user_pass\']) || ( isset( $_REQUEST[\'user_pass\'] ) && trim( $_REQUEST[\'user_pass\'] ) == \'\' ) ) ){
wp_redirect( add_query_arg(\'login\', \'failed\', $referrer) );
exit;
}
}
如果您对注册失败后的正确登录感兴趣,请检查我的
blogpost on this topic.