「ログイン期間(セッション時間)を変更したい。」
「セッションが切れたときの挙動を確認したい。」
WordPressサイトのセキュリティや運用効率を考えると、こんな場合があると思います。
そこで当記事では、プラグインを使わずにログインセッション時間を変更する方法をご紹介します。functions.phpを操作しますが、コピペでかんたんに対応可能です。
目次
WordPressのログインセッションとは
WordPressのログインセッションとは、ログイン状態が保持される期間のことです。
以下で概要をご紹介します。
ログイン状態が保持される仕組み
WordPressにログインすると、ユーザー情報(IDやパスワード)を含むクッキーが発行され、一定時間ログイン状態が保持されます。この有効期限がセッションです。
デフォルトの有効期限
WordPressのセッション時間は、デフォルトでは48時間に設定されています。
「ログイン状態を保存する」にチェックを入れると、14日間に延長されます。

有効期限を過ぎると自動でログアウトされます。
ログインセッション時間の変更方法
ログインセッション時間は、プラグイン「Remember Me Controls」でも変更できますが、軽量に対応したい場合はfunctions.phpの編集がおすすめです。
プラグインは、WordPressのカスタマイズやコーディングの知識がなくても、欲しい機能をサイトに簡単に導入することができる優れものです。 ですが、プラグインをインストールしすぎるのも良いことではありません。この記事では、プラグインをたくさん入れすぎるべきではない理由と、プラグインの数を減らす...
以下のコードをfunctions.phpに追加すると、ログインセッションの有効期限を任意の時間に変更できます。
// セッション有効期限を30分(1800秒)に設定
add_filter('auth_cookie_expiration', function($expirein) {
return 1800; // 秒数で指定
});
ログイン保存オプション別に制御したい
たとえば、次のように制御したい場合です。
- 「ログイン状態を保存する」にチェック無し:30分保持(デフォルト48時間)
- 「ログイン状態を保存する」にチェックあり:1週間保持(デフォルトは14日間)
以下のように書けば実現できます。
// 「ログイン状態を保持する」チェック有無で制御
add_filter('auth_cookie_expiration', function($expirein, $user_id, $remember) {
return $remember ? WEEK_IN_SECONDS : 1800; // チェック時は1週間、通常は30分
}, 10, 3);
必要に応じて、WEEK_IN_SECONDSや1800などの数値を書き換えて使用できます。たとえば、DAY_IN_SECONDS(1日)やHOUR_IN_SECONDS(1時間)などに変更できます。
よく使う定数は、以下をご参照ください。
| 定数名 | 秒数 | 期間 |
|---|---|---|
| MINUTE_IN_SECONDS | 60 | 1分 |
| HOUR_IN_SECONDS | 3600 | 1時間 |
| DAY_IN_SECONDS | 86400 | 1日 |
| WEEK_IN_SECONDS | 604800 | 1週間 |
| MONTH_IN_SECONDS | 2592000 | 30日(約1か月) |
役立つ場面
ログインセッション時間の変更が役立つのは、次のような場面でしょう。
- 指定した時間で自動ログアウトさせたいとき
- セッションが切れたときの挙動を確認したいとき
- モーダルや管理画面でログイン動作を確認したいとき
セッション時間を短く設定すれば、セキュリティを強化したり、セッションを強制的に終了させることもできます。
注意点
たとえ、すぐ確認したいテスト用の変更だとしても、セッション時間を10秒などと極端に短くするのは避けましょう。
操作完了する前にログアウトされてしまい、設定変更ができなくなるからです。最低でも30秒程度は保持すると安心です。
モーダルログインウィンドウをすぐ確認する方法
ログインセッションが切れたときに表示される次のような「モーダルログインウィンドウ」。もしこれを確認することが目的なら、次の手順がおすすめです。

モーダルログインウィンドウが表示されている画面
- WordPressの管理画面を開いたままにしておく
- 別タブでログアウトする
- 元の管理画面タブに戻ると、モーダルログインが表示される
この方法なら、セッション時間を短く変更しなくても挙動をすぐ確認できます。
まとめ
プラグイン不要で、WordPressのログインセッション時間を変更する方法をご紹介しました。セッション時間を短くすればセキュリティを強化でき、長くすれば運用効率がアップします。
デフォルト設定のままでも問題はありませんが、一時的なテストや動作検証時にも役立つので、必要なときに参考にしてみてください。
ログイン・セキュリティ関連の記事
デフォルト設定(初期状態)のままのWordPressサイトでは、ユーザー名が漏えいしている可能性があります。そのまま放置していると、不正ログインのリスクが高まります。 そこで当記事では、見落としやすい3つのリスク(ログインページ、投稿者情報、REST API)と対策をご紹介します。 ...
WordPressはオープンソースかつ、無料で使えて拡張性(プラグイン・テーマ)も高いので、世界中で最も利用されているCMSの1つです。オープンソースであるがゆえ、脆弱性が早期発見されやすい性質もあります。 WordPressは世界中で使われているCMSのため、きちんとセキュリティ対策を行って...
WordPressテーマ集











コメント