簡體   English   中英

登錄后重定向,Wordpress URL

[英]Redirect after login, Wordpress URLs

登錄失敗后,我使用以下功能重定向用戶。 在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;
    }
}

這可行,但是問題是我不知道如何解析“?login-failed”。 當我將其作為PHP問題問時,他們說URL格式錯誤。

我的網址:www.site.com/?page_id=57?login=failed

首選網址:www.site.com/?page_id=57&login=failed

現在您會認為我可以更改“?” 至 '&'。 當我這樣做時,如果用戶嘗試從主頁登錄並失敗,則會產生問題。 它創建的URL是404:“在此服務器上找不到請求的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;
        }
    }
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM