「WordPressのログイン期間を長くしたい。」
「編集中にログアウトされるのが嫌」
「大人数がログインするので、セッションを短くしたい」

WordPressのデフォルトのログイン期間(セッション)は、2日間。「ログイン状態を保持する」にチェックが入っていれば14日間です。

些細なことですが、ログインセッションが短すぎると、ちょっとしたストレスを覚えることもあるかもしれません。また、不特定多数のユーザーがログインする会員制サイトだと、14日間のセッションは長すぎるかもしれません。

そんな方のためのログインセッションを変更するためのカスタマイズ方法やプラグインをご紹介します。

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

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

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

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

デフォルトの有効期限:
WordPressのセッション時間は、デフォルトでは48時間。「ログイン状態を保存する」にチェックを入れると、14日間に延長されます。

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

ログインセッションの変更方法は以下の2つがあります。どちらか好きな方をお選びください(初心者は2のプラグインがおすすめ)。

  1. functions.phpを編集する
  2. プラグインを使う

1. functions.phpを編集する

プラグインをたくさん入れたくない場合はfunctions.phpの編集がおすすめです。

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

// セッション有効期限を30分(1800秒)に設定
add_filter('auth_cookie_expiration', function($expirein) {
    return 1800; // 秒数で指定
});
テーマファイルを直接編集するのが不安な方は、安全にPHPを編集できるプラグイン「Code Snippets」がおすすめ。

チェック、未チェックごとに期間を変更したい場合は、以下のように書けば実現できます。

  • 「ログイン状態を保存する」にチェック無し: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時間)などに変更できます。

注意点:
たとえ、すぐ確認したいテスト用の変更だとしても、セッション時間を10秒などと極端に短くするのは避けましょう。操作完了する前にログアウトされてしまい、設定変更ができなくなるからです。
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か月)

2. プラグインを使う

ログインセッションを変更するWordPressプラグインはいくつかあります。ここではLogin Timeout Sessionsの解説をします。

Login Timeout Sessionsをインストール後、設定ページに移動します。

設定 > Login Sessions

分・時間・日単位でセッションを変更できるので、お好みの設定にして保存します。

Login Timeout Sessions

管理画面の下部では、「投稿の編集権限」「テーマの有効化」等の”権限”を持つユーザーごとにセッションを変更できるようです。あまり使わないと思うので、「Set new session (default: 2 days)」「Remember me session (default: 14 days)」の2つを変更するだけで十分だと思います。

まとめ

セッション時間を短くすればセキュリティを強化でき、長くすればストレスがちょっぴり減ります。デフォルトのままでも問題ありませんが、変更したい方はどうぞ。

なお、ログインセッションが切れたときに表示される次のような「モーダルログインウィンドウ」を確認することが目的なら、わざわざセッションを変更する必要はありません。

WordPressのログインモーダルウィンドウ

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

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

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

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

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