2017-08-09 127 views
0

我正在使用強制登錄wordpress插件來限制用戶在查看某些頁面之前登錄,但我想查看主頁而無需登錄我想將主頁添加到白名單中,但它不工作我正在使用我的自定義theme.Can你建議我應該使用什麼插件/我應該爲此做什麼。白名單中的白名單主頁

function my_forcelogin_whitelist($whitelist) { 
      //$whitelist[] = 'http://localhost/wordpress/index.php/home/'; 
      //$whitelist[] = site_url('/index.php/home/'); 
       $whitelist[] = 'http://localhost/wordpress/index.php/'; 
       $whitelist[] = site_url('/index.php/'); 

     return $whitelist; 
    } 
    add_filter('v_forcelogin_whitelist', 'my_forcelogin_whitelist', 10, 1); 
+0

我想你也許可以創建用戶的「會話」啓動後加載自己的小插件。只要你的函數看看'$ _SERVER ['REDIRECT_URI']'(或者WordPress的等價物,我不是100%流利的WP,所以這裏可能是一種本地獲取這個的方法),並且首先檢查用戶是否登錄,然後如果沒有,請檢查用戶是否位於白名單中的某個網址上。我認爲你正在使用默認的服務器重寫...? – Rasclatt

回答

0

將此代碼插入到您的主題的functions.php。它會檢查你是否登錄。接下來,如果當前頁面不是主頁或首頁,它會將用戶重定向到登錄頁面。

而且您不需要其他插件重定向,因此請在測試此代碼之前禁用任何強制登錄插件。

function logged_in_only() { 
    if (! is_user_logged_in()) { 
     if(!is_home() || !is_front_page()) 
      auth_redirect(); 
    } 
} 
add_action('template_redirect', 'logged_in_only'); 
+0

謝謝,如果我想阻止任何其他頁面重定向我該怎麼辦? – nagi

+0

然後,您可以在第3行添加更多條件標籤。有關WordPress條件標籤的更多詳細信息,請訪問:https://codex.wordpress.org/Conditional_Tags –