我们使用前台自定义的登录页面,一般都不希望用户登录失败后跳转到Wordpress的默认的登录表单,那就需要做一个重定向,让用户登录失败后重定向到我们自定义的页面。将代码复制到当前主题的 functions.php 即可:

add_action('wp_login_failed', 'my_front_end_login_fail');
function my_front_end_login_fail($username){
	// 获取提交数据的来源页面
	$referrer = $_SERVER['HTTP_REFERER'];
	// 如果是一个有效的来源,并且不是默认登录页面或后台管理页面
	if(!empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin')){
		// 追加一些信息(login=failed)到链接中,让主题使用
		wp_redirect($referrer . '?login=failed');
		exit;
	}
}

如果自定义登录地址为 http://域名/login,上面的第8行就会获取到这个页面链接,然后登录失败后,按照wp_redirect($referrer . ‘?login=failed’);的设置,就会返回 http://域名/login?login=failed 这个链接。你可以通过修改wp_redirect()这个函数的参数跳转到任何你想要的地址