「ログイン期間(セッション時間)を変更したい。」
「セッションが切れたときの挙動を確認したい。」

WordPressサイトのセキュリティや運用効率を考えると、こんな場合があると思います。

そこで当記事では、プラグインを使わずにログインセッション時間を変更する方法をご紹介します。functions.phpを操作しますが、コピペでかんたんに対応可能です。

WordPressテーマ「GLUE」
WordPressテーマ「GLUE」
無料で高機能なWordPressテーマが手に入る。

WordPressのログインセッションとは

WordPressのログインセッションとは、ログイン状態が保持される期間のことです。

以下で概要をご紹介します。

ログイン状態が保持される仕組み

WordPressにログインすると、ユーザー情報(IDやパスワード)を含むクッキーが発行され、一定時間ログイン状態が保持されます。この有効期限がセッションです。

クッキーはログインや保存、更新などの操作の都度再発行されるため、操作中に急にセッションが切れることはありません。画面やタブが開いたまま放置されているとセッションが切れます。

デフォルトの有効期限

WordPressのセッション時間は、デフォルトでは48時間に設定されています。

「ログイン状態を保存する」にチェックを入れると、14日間に延長されます。

WordPressのログイン保持オプション

有効期限を過ぎると自動でログアウトされます。

一定期間ログイン情報が保存されたり、自動でログアウトされるのは、ログイン操作の効率化やセキュリティ面を考慮したWordPressの仕様です。

ログインセッション時間の変更方法

ログインセッション時間は、プラグイン「Remember Me Controls」でも変更できますが、軽量に対応したい場合はfunctions.phpの編集がおすすめです。

以下のコードをfunctions.phpに追加すると、ログインセッションの有効期限を任意の時間に変更できます。

テーマファイルを直接編集せず、プラグイン「Code Snippets」にコピペするのが安全です。
// セッション有効期限を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時間)などに変更できます。

WordPressでよく使う定数

よく使う定数は、以下をご参照ください。

定数名 秒数 期間
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のログインモーダルウィンドウ

モーダルログインウィンドウが表示されている画面

  1. WordPressの管理画面を開いたままにしておく
  2. 別タブでログアウトする
  3. 元の管理画面タブに戻ると、モーダルログインが表示される

この方法なら、セッション時間を短く変更しなくても挙動をすぐ確認できます。

まとめ

プラグイン不要で、WordPressのログインセッション時間を変更する方法をご紹介しました。セッション時間を短くすればセキュリティを強化でき、長くすれば運用効率がアップします。

デフォルト設定のままでも問題はありませんが、一時的なテストや動作検証時にも役立つので、必要なときに参考にしてみてください。

ログイン・セキュリティ関連の記事

世界最高品質のデザインの
WordPressテーマ集
WordPressテーマ「ISSUE」
WordPressテーマ「ISSUE」
人材不足を解決する求人採用サイトを。
WordPressテーマ「SEEED」
WordPressテーマ「SEEED」
Webサービスを販売するLP型テーマ。
WordPressテーマ「GENESIS」
WordPressテーマ「GENESIS」
スタイリッシュな企業サイトの決定版。
WordPressテーマ「SOLARIS」
WordPressテーマ「SOLARIS」
一流の企業のための一流の企業サイトを。