Wordpress重定向用户,如果没有登录

Rys*_*yso 2 php wordpress e-commerce

我在functions.php中使用以下代码来重定向未登录的用户,不包括你是否在wp-login.php中.

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

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

是否有一些代码可以用来排除重定向的url路径,也许是要替换的东西$pagenow != 'wp-login.php'

小智 12

这个怎么样..

//
//  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;
}
Run Code Online (Sandbox Code Playgroud)

  • 关心评论你的代码吗?添加一些关于你做了什么以及为什么做的解释,它为你的答案增加了价值,而不是“这个怎么样”和简单的代码。 (2认同)

小智 10

打开Functions.php ...

糊:

// Redirect users who arent logged in...
function login_redirect() {

    // Current Page
    global $pagenow;

    // Check to see if user in not logged in and not on the login page
    if(!is_user_logged_in() && $pagenow != 'wp-login.php')
          // If user is, Redirect to Login form.
          auth_redirect();
}
// add the block of code above to the WordPress template
add_action( 'wp', 'login_redirect' );
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 :)


Dom*_*c P 0

您可以尝试使用 WordPressis_page( 'login' )is_page( 'account/login' )条件语句。