内蔵の表示設定を使用して、一連の投稿とページを自分のWebサイトでパスワードで保護しました。それらはすべて同じパスワードを使用するので、ユーザーは一度パスワードを入力した後それらすべてを見ることができます。
問題: 1時間後にセッションがタイムアウトする必要があります。私は私のfunctions.phpファイルでこのコードを使ってみました。
add_action( 'wp', 'post_pw_sess_expire' );
function post_pw_sess_expire() {
if ( isset( $_COOKIE['wp-postpass_' . COOKIEHASH] ) )
// Setting a time of 0 in setcookie() forces the cookie to expire with the session
setcookie('wp-postpass_' . COOKIEHASH, '', 0, COOKIEPATH);
}
キャッシュは正常にクリアされますが、すぐにセッションを期限切れにするのではなく、時間を延長したいと思います。任意の助けは大歓迎です!
その理由はあなたがこのコードを実行したときです
setcookie('wp-postpass_' . COOKIEHASH, '', 0, COOKIEPATH);
これはあなたの投稿パスワードのクッキーを空白の ''にリセットするので、一度だけ動作します。
setcookie('wp-postpass_' . COOKIEHASH, $_COOKIE['wp-postpass_' . COOKIEHASH], time() + 60 * 5, COOKIEPATH);
この助けを願っています
このようにフィルタにフックして、time() + 60
のように0
を時間計算に置き換えるだけです。
function set_cookie_expire () {
echo 0;
}
add_filter('post_password_expires', 'set_cookie_expire');