簡體   English   中英

Wordpress重定向用戶,如果沒有登錄

[英]Wordpress redirect user if not logged in

我在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;
}

打開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' );

希望這可以幫助 :)

您可以嘗試使用WordPress is_page( 'login' )is_page( 'account/login' )條件。

 <?php     
if (!is_user_logged_in()) {
?> 
<style>
.lor1{ display:none;}
.lor1.kun{ display: block;}
.lor1.user_not_login{ display: block;}
</style>
<?php }  ?>
  1. 主div(.lor1)表示comman div在頁眉之后開始,在頁腳之前是finesh
  2. 當用戶登錄此主類顯示時,在主div中添加新類(.lor1.kun):block;
  3. 制作新的HTML。 顯示混亂記錄第一個(.lor1.user_not_login)

在header.php中添加此代碼

暫無
暫無

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

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