2017-08-09 104 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 –