我在functions.php中使用以下代码来重定向未登录的用户,如果您不在wp-login.php中,则将其重定向。

if(!is_user_logged_in() && $pagenow != 'wp-login.php') {
wp_redirect( 'http://signup.mysite.com', 302 );
}

但是,我安装了使用不同登录页面的购物车插件,并且基本上将mysite.com/wp-login.php重定向到mysite.com/account/login。

是否可以使用某些代码来排除重定向的url路径,也许可以替换$pagenow != 'wp-login.php'吗?

最佳答案

这个怎么样..

//
//  Re-direct not-logged-in users to holding page
//
if(!is_user_logged_in() && curPageURL() != 'http://mysite.com/wp-login.php') {
    wp_redirect( 'http://signup.mysite.com', 302 );
    exit;
}

//
//  Get current page URL
//
function curPageURL() {

    $pageURL = 'http';
    if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}

    $pageURL .= "://";
    if ($_SERVER["SERVER_PORT"] != "80") {
        $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
    } else {
        $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
    }

    return $pageURL;
}

10-06 13:27