我在第X页上有一个自定义登录表单,我已使用wp_login_form( $args )
添加了表单。
然后我有一个登录按钮wp_loginout();
,它将我带到 wp-login.php 。
我需要登录按钮才能转到 wp-login.php 页面,我需要在提交包含错误或空数据的自定义登录表单时,我需要重定向到同一页面X
目前我已经实现了这段代码
if( ! function_exists( 'custom_login_fail' ) ) {
function custom_login_fail( $username ) {
$referrer = $_SERVER['HTTP_REFERER']; // where did the post submission come from?
// 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') ) {
if ( !strstr($referrer,'?login=failed') ) { // make sure we don’t append twice
wp_redirect( $referrer . '?login=failed' ); // append some information (login=failed) to the URL for the theme to use
} else {
wp_redirect( $referrer );
}
exit;
}
}
}
add_action( 'wp_login_failed', 'custom_login_fail' ); // hook failed login
if( ! function_exists( 'custom_login_empty' ) ) {
function custom_login_empty(){
$referrer = $_SERVER['HTTP_REFERER'];
if ( strstr($referrer,get_home_url()) && $user==null ) { // mylogin is the name of the loginpage.
if ( !strstr($referrer,'?login=empty') ) { // prevent appending twice
wp_redirect( $referrer . '?login=empty' );
} else {
wp_redirect( $referrer );
}
}
}
}
add_action( 'authenticate', 'custom_login_empty');
当提交错误或空白时,页面X上的重定向按预期工作,但是当我单击第X页上的登录按钮时,它不会将我带到 wp-login.php 页面了,但它转到了pageX /?login = empty。
我该如何解决这个问题?
答案 0 :(得分:1)
你做不到。在您的页面X上的登录表单的授权请求期间,您的浏览器已被重定向到wp-login.php
。
我不确定,但您最好使用异步请求(在WP中很难实现)或将用户登录代码复制到您自己的代码(使用站点插件),因此它总是会在任何页面上根据请求授权用户需要。