Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Wordpress在未登录时重定向用户_Php_Wordpress_E Commerce - Fatal编程技术网

Php Wordpress在未登录时重定向用户

Php Wordpress在未登录时重定向用户,php,wordpress,e-commerce,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 ); } 但是,我安装了一个购物车插件,它使用不同的登录页面,基本上会将mysite.com/wp-login.php重定向到mysite.com/account/

我在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“

您可以尝试使用WordPress
is\u页面('login')
或者
is\u页面('account/login')
条件

这个怎么样

//
//  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;
}
打开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' );
希望这有帮助:)


.lor1{显示:无;}
.lor1.kun{display:block;}
.lor1.user_not_login{display:block;}
  • 主div(.lor1)是指在页眉之后开始的comman div和页脚之前的finesh
  • 用户登录此主类时在主div中添加新类(.lor1.kun)显示:block
  • 使新html例如显示混乱登录第一个(.lor1.user\u not\u login)

  • 将此代码添加到header.php

    如果未登录,您的购物车插件是否会将每个路径重定向到mysite.com/account/login?否,您仍然可以浏览该网站。但是,如果您尝试访问标准的wp-login.php,它将重定向到amysite.com/account/login,这是一个自定义的登录页面。这在我的设置中似乎不起作用。只有当用户试图访问主页时,是否有办法重定向用户?我试过使用is_front_page(),但是没有用。如果(!is_user_logged_in()&&is_front_page()){wp_redirect(“”)},看起来你的重定向url后面有一个分号。试着把它去掉。此外,您可能需要考虑将此挂钩到<代码> PrimeGETPixs< /Cuff>过滤器中,以保存一些数据库查询。请注意注释您的代码吗?添加一些关于你做了什么以及为什么做的解释,这会给你的答案增加价值,而不是“这个怎么样”和简单的代码。curPageURL检查您所在的页面。如果它与wp登录匹配,则允许它在不重定向的情况下正常加载。对于仍在学习的人来说,这并不明显——因为stackoverflow应该增强自学习功能。解释和教授提供的解决方案的工作原理和方式总是很好的。
     <?php     
    if (!is_user_logged_in()) {
    ?> 
    <style>
    .lor1{ display:none;}
    .lor1.kun{ display: block;}
    .lor1.user_not_login{ display: block;}
    </style>
    <?php }  ?>