ワードプレスでは記事毎にパスワードを設定することが可能です。
正しいパスワードを入力するまで内容を表示させないという仕様で、資料のダウンロードページ等使い勝手がよい機能です。
ただ、デフォルトだと1度正しいパスワードを入力してから10日もの間、再入力を要求されません。長すぎじゃないですか?共有PCなんかだと不都合なケースもありますよね。
ということで、この期間を10日→60分に変更しようというカスタマイズです。
パスワード保護ページのカスタマイズは当ページの他にもありますのでご参考に
パスワード保存期間の変更(functions.php)
functions.phpファイルに下記のコードを記載すればパスワード再入力までの期間を60分間にすることができます。
/* パスワード保護ページのパスワード保存時間を60分に変更 */
function custom_postpass_time() {
require_once ABSPATH . 'wp-includes/class-phpass.php';
$hasher = new PasswordHash( 8, true );
setcookie( 'wp-postpass_' . COOKIEHASH, $hasher->HashPassword( wp_unslash( $_POST['post_password'] ) ), time() + HOUR_IN_SECONDS, COOKIEPATH );
wp_safe_redirect( wp_get_referer() );
exit();
}
add_action( 'login_form_postpass', 'custom_postpass_time' );
5行目の“HOUR_IN_SECONDS”が60分間を表しています。ここを変更すればパスワード保存期間を60分以外にも変更可能です。
- MINUTE_IN_SECONDS =1分
- HOUR_IN_SECONDS =60分
- DAY_IN_SECONDS =1日
- WEEK_IN_SECONDS =7日間
- MONTH_IN_SECONDS =30日間
- YEAR_IN_SECONDS =1年
実際に設定するとしたら60分か1日ですかね。
(1分は動作テストの時に重宝しました)
スポンサーリンク
まとめ
入力されたパスワードはクッキーに保存されるので、クッキーの保存期間を変更しています。
同カテゴリにあるパスワード保護ページのカスタマイズ方法もご参考に
ではまた!