2011-12-19 68 views
8

在WordPress中,我試圖強制用戶登錄之前先看到任何東西。意思是我希望我的用戶首先登錄查看任何單個頁面,發佈或存檔,只有他們可以選擇常見問題頁面。我正在嘗試使用下面的代碼,但問題是我一進去就將其重定向到登錄頁面。WordPress的強制用戶登錄之前查看任何網站內容

但是我的網站結構會像下面和相同的方式我想這個代碼工作...

// Force user to login on welcome 
function my_force_login() { 
global $post; 

    if (is_single() || is_front_page() || is_page() && !is_page('login') && !is_user_logged_in()){ 
     auth_redirect(); 
    } 
} 

Welcomd-登錄界面(如Facebook) - 首頁頁面 -Blog - 關於 - 聯繫 -FAQ

所以我想允許遊客只能看到歡迎登錄畫面和常見問題解答,聯繫頁面,查看我要強迫他們登錄該網站的其餘..

我需要你們的大力幫助..非常感謝..

回答

8

我認爲你缺少一個括號:

if ((is_single() || is_front_page() || is_page()) 
     && !is_page('login') && !is_user_logged_in()){ 
    auth_redirect(); 
} 
+0

非常感謝。它的作用像魅力。我剛剛添加了is_archive()以防止類別和歸檔列表。 非常感謝。我會回來,如果需要一些更多的幫助相同..再次感謝 – 2011-12-19 16:35:54

1

有一個插件可以用於此目的。 Private Only

+0

女貞會工作,如果我想使用WP-login.php中,而不是我自己的登錄頁面。在這裏,我想使用登錄屏幕作爲我的主題登錄屏幕,所以我使用'!is_page('login')'該插件繼續在重定向循環中進行。因爲登錄後我有自己的重定向等。 – 2011-12-19 16:30:16

+0

謝謝..正是我想要的 – Christine 2015-12-03 01:02:31

1

簡單的方法只有

// Require login for site 
get_currentuserinfo(); 
global $user_ID; 
if ($user_ID == '') { 
    header('Location: /wp-login.php'); exit(); 
} 
+0

似乎有限。你只能在模板上使用它,而不能在站點範圍內使用,因爲它可能導致循環。 – Jake 2012-09-18 04:17:09

相關問題