Php 登录后重定向,Wordpress URL

Php 登录后重定向,Wordpress URL,php,wordpress,Php,Wordpress,我正在使用以下函数在登录尝试失败后重定向用户。在functions.php中,我添加了: add_action( 'wp_login_failed', 'inline_login_fail' ); function inline_login_fail( $username ) { $referrer = $_SERVER['HTTP_REFERER']; if ( !empty($referrer) && !strstr($referrer,'wp-login'

我正在使用以下函数在登录尝试失败后重定向用户。在functions.php中,我添加了:

add_action( 'wp_login_failed', 'inline_login_fail' );

function inline_login_fail( $username ) {
    $referrer = $_SERVER['HTTP_REFERER'];
    if ( !empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin') ) {
        if ( !strstr($referrer,'?login=failed') ) { // don’t append twice
        wp_redirect( $referrer . '?login=failed' ); 
        } else {
        wp_redirect( $referrer );
        }
    exit;
    }
}
这是可行的,但问题是我不知道如何解析“?登录失败”。当我作为PHP问题问这个问题时,他们说URL格式不正确

我的URL:www.site.com/?page\u id=57?登录=失败

首选URL:www.site.com/?page\u id=57&login=failed

现在你会认为我可以把“?”改成“&”。当我这样做时,如果用户尝试从主页登录失败,就会产生问题。它创建了一个404的URL:“在此服务器上找不到请求的URL/wordpress/&login=failed。”

是否有任何方法可以更正此函数,使其与首选URL一起工作?这样我就可以检索登录是否失败的值,如下所示:

<?php
if(isset($_GET['login']) === true and $_GET['login'] === 'failed')
{
  get_template_part( 'login', 'failed' );
} else {
  get_template_part( 'login', 'form' );
}
?>

否则,我根本不知道如何使用该URL。
谢谢

检查

<?php
    function inline_login_fail( $username ) {
        $referrer = $_SERVER['HTTP_REFERER'];
        if ( !empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin') ) {
            if ( !strstr($referrer,'login=failed') ) { // don’t append twice
                if(!strstr($referrer, '?')){
                    wp_redirect( $referrer . '?login=failed' ); 
                } else {
                    wp_redirect( $referrer . '&login=failed' ); 
                }
            } else {
                wp_redirect( $referrer );
            }
        exit;
        }
    }
?>

wordpress只是一个新的解决方案,它有
add\u query\u arg()