我真的不知道你为什么要折磨你已经通过身份验证的用户,但你可以做以下两件事之一:
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 覆盖窗口,或带有 php 的 session 控件。
但是,就像之前说的,我真的不知道你为什么要这样做——我很确定你并没有真正考虑清楚。
最后一件事 - 你检查过你的主题文件,看看他们真的对所有数据都做了条件保护吗?
if ( !post_password_required() ) {
echo 'protected content'; //or content or title or whatever ..
}