[英]Wordpress password protected page not actually protected
我在受密碼保護的頁面上遇到問題。 我已經將可見性設置為受密碼保護,但是當我從常規瀏覽器(Chrome)以及Firefox和IE11訪問頁面(注銷)時,我仍然可以訪問頁面,但是頁面標題現在顯示PROTECTED:PAGE TITLE 。
在“ 使用密碼保護”法典條目中,它說WordPress將此密碼存儲在瀏覽器cookie中,因此,如果讀者多次訪問同一頁面,則不必重新輸入密碼 。 我試圖將頁面完全鎖定,因此用戶每次嘗試進入該頁面時都需要輸入密碼。 我發現的所有Google帖子都是針對密碼保護的帖子,我找不到任何專門用於頁面的插件,他們都說WP具有內置功能,但我似乎無法弄清楚。
我真的不知道為什么要折磨您已經通過身份驗證的用戶,但是您可以執行以下兩項操作之一:
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 ..
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.