2015-09-20 179 views
0

我遇到了密码保护页面的问题。我已经设置了密码保护的可见性,但是当我从我通常的浏览器(Chrome)以及Firefox和IE11访问该页面(注销)时,我仍然可以访问该页面,但页面标题现在说保护:页面标题WordPress的密码保护页面实际上并没有保护

Using Password Protect食品进入它说WordPress的专卖店此密码在浏览器中的cookie,以便读者不必如果他们多次访问同一页面重新输入密码。我试图将页面完全锁定,以便用户每次尝试访问该页面时都需要输入密码。我找到的所有google帖子都是针对密码保护帖子的,我找不到任何专门做页面的插件,他们都说WP有内置的内容,但我似乎无法弄清楚。

回答

0

我真的不知道你为什么要折磨你已通过验证的用户,但你可以做两件事情之一:

1 - 设置自己的cookie。

function o99_set_newvisitor_cookie() { 
    if (!is_admin() && !isset($_COOKIE['sitename_newvisitor'])) { 
     setcookie('sitename_newvisitor', 1, time()+3600*24*100, COOKIEPATH, COOKIE_DOMAIN, false); // change time ... 
    } 
} 
add_action('init', 'o99_set_newvisitor_cookie'); 

,之后在你的主题

if (isset($_COOKIE['sitename_newvisitor'])) { 
    echo 'We need password'; 
} 
else { 
    echo 'we do not need password'; 
} 

2。使用auth_cookie_expiration过滤器来减少身份验证的长度。 (以下只是一个例子 - 根据自己的需要进行更改)

function o99_cookie_expiration($expiration, $user_id, $remember) { 
    return $remember ? $expiration : 600; 
} 
add_filter('auth_cookie_expiration', 'o99_cookie_expiration', 99, 3); 

现在取决于您的时间设置,这会将用户踢出去。

其他的,不推荐的选项将是一个JS覆盖窗口,或session控制与php。但是,就像之前说过的,我不知道你为什么想这样做 - 我敢肯定你并没有真正想到它。

而最后一件事 - 你检查了你的主题文件,看看他们是否真的为所有数据保护条件?

if (!post_password_required()) { 
    echo 'protected content'; //or content or title or whatever .. 
    } 
+0

我没有试图用密码保护登录的用户页面;我想为访问者提供受密码保护的页面,所以当他们访问它时,他们只需要密码即可查看页面/内容。没有登录/密码,但一个简单的密码。 – vytfla

+0

首先,您必须更明确地提出您的问题,其次,内置的密码保护功能完全符合您在注释中描述的内容 - 无需登录。第三 - 请再次查看我答案的最后部分。是你的主题准备好密码保护? –