wordpressのログイン周りの設定を操作する必要があり、解決方法を調べました。
[adsense]
そもそもWordpressのログインの仕組みはどうなっているのか
wp-includes/pluggable.php の831行目、「wp_set_auth_cookie」が、クッキーの設定をしている部分。
ソースを見ると「ログインを保存する」にチェックが入っていると14日間保持するとなっています。
ここを操作すればいいのですが、バージョン3.7以降であれば、
このファイルの設定を直接触らなくても、フィルターが用意されています。
ログインの保持期間を長くする
function.phpに、post_password_expiresのフィルターを設定、
任意の数値(秒)を入れることで保持期間を自由に設定できます。
apply_filters ( 'post_password_expires', 3600 );//1時間でログアウト
また、ワードプレスには時間を設定するのに便利な定数が用意されています。
これを使うと楽だしわかりやすく記述できます。
define( 'MINUTE_IN_SECONDS', 60 ); define( 'HOUR_IN_SECONDS', 60 * MINUTE_IN_SECONDS ); define( 'DAY_IN_SECONDS' , 24 * HOUR_IN_SECONDS ); define( 'WEEK_IN_SECONDS', 7 * DAY_IN_SECONDS ); define( 'YEAR_IN_SECONDS', 365 * DAY_IN_SECONDS );
1時間でログアウト
apply_filters ( 'post_password_expires',HOUR_IN_SECONDS );
30分でログアウト
apply_filters ( 'post_password_expires',30 * MINUTE_IN_SECONDS );
3週間でログアウト
apply_filters ( 'post_password_expires', 3 * WEEK_IN_SECONDS );
1年でログアウト
apply_filters ( 'post_password_expires', YEAR_IN_SECONDS );
ログインの保持をさせない
post_password_expiresは、ゼロを指定すると、
ブラウザ終了と同時にセッションが切れるようになります。
セキュリティを高めたい場合にもってこいですね。
apply_filters ( 'post_password_expires', 0 );