WordPressのオートログインを外したり、保持期間を長くする方法

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 );

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*