2014-04-07 69 views
5

我有一個wp網站,我試圖強制客人登錄/註冊之前只查看單個帖子。(不是頁面,檔案等)。WordPress的客戶登錄重定向查看帖子

我有這樣的功能:

// 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'); 

具有這種功能的問題是,它重定向客人,當他們觀看任何頁面/後的/ etc登錄。有人可以幫我修改這個功能,只在查看單個帖子時重定向嗎? 謝謝,Iasmina

回答

10

試試這個:

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' && is_single() && !is_home()) {    
    auth_redirect(); 
     } 
} 

// add the block of code above to the WordPress template 
add_action('wp', 'login_redirect'); 
+0

完美。它的作用就像一種魅力。非常感謝! – user3507955

+0

太棒了,不要忘記通過點擊左邊的勾號來接受我的答案! –

0

另一個條件標記添加到if語句

if(!is_user_logged_in() && $pagenow != 'wp-login.php' && is_single()) 

is_single()

+0

你還需要檢查它的主頁或者並不像他只有在帖子頁面的情況下才需要重定向! –

+0

不完全如此,只有在顯示除附件和頁面帖子類型之外的任何帖子類型的單個帖子時,'is_single'才返回true。 – DNACode