ログイン画面の「ログイン状態を保存する」を無効にする方法(メモ)

公開日:2025(令和7)年6月24日/最終更新日:

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)

【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています

ログイン画面にある「ログイン状態を保存する」というチェックボックス。

WordPressでは、ログインに成功すると、ブラウザのCookieに情報が保存され、それが一定期間維持されるようになっています。

これにより、管理画面内の作業中でも一定期間は再ログインが必要なくなるんですね。

ちなみに、ログイン時にここにチェックを入れるかどうかで以下のような違いがあります。

  • チェックを入れると、ログインし続けている状態が14日間維持される
  • チェックを外すと、ログインし続けている状態が2日間(48時間)維持される

この機能はとても便利なのですが、個人的には以下のような問題を感じていました。

  • 期間内はログインされ続けていることになっているため、正確なログインのログが取れない
  • 万が一ログイン情報が漏洩され、チェックが入ってしまうと、最大14日間不正作業が行われかねない環境になってしまう

ログインセキュリティで多分そこまで気にする必要はないかも知れませんが、例えばGoogle+Chromeならパスワードマネージャーがあるので、別にユーザー名やパスワードを失念してログインできないというケースは各段に少なくなっているのではないかと思い、この機能は必要ないのでは?と個人的には思います。

そこで今回は、某AIの力を借りつつログイン画面の「ログイン状態を保存する」を無効にするコードの作成をしてみましたので、私と同じように不要と思う方はお試しください。

本コードは見た目に「ログイン状態を保存する」項目を非表示にする、この項目にチェックが入っていれば無効にするという2段構えのコードなので多分誤動作等はないかと思いますが、テストサイトなどを使って十分にテストしてから導入するようにしてください

以下を有効化しているテーマのfunctions.phpへ貼り付けることで動作します。

/***** 「ログイン状態を保存する」を無効にする *****/
/*** ログイン画面の「Remember Me」項目を視覚的に非表示にする ***/
function pwcn_hidden_rememberme() {
?>
<style type="text/css">
p.forgetmenot {
	display: none;
}
</style>
<?php
 }
add_action( 'login_enqueue_scripts', 'pwcn_hidden_rememberme' );

/*** 「Remember Me」のチェックを強制的に外す ***/
function pwcn_disable_rememberme( $user, $username, $password ) {
	if ( isset( $_POST['rememberme'] ) ) {
		$_POST['rememberme'] = false; // 「Remember Me」の値を強制的にfalseに設定
	}

	return $user;
}
add_filter( 'authenticate', 'pwcn_disable_rememberme', 10, 3 );

先ほど触れたように、前半のユーザー定義関数とフックが視覚的に「ログイン状態を保存する」を非表示にするもの、後半がチェックを強制的に無効にするものです。

ググってもなかなか出てこなくて実装は難しいかな?と半ばあきらめていましたが、結構簡単なコードで実現できてちょっとびっくりでした。

, , ,
Lolipop ServerMoshimo Ad x-serverMoshimo Ad

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)
プラグインなしでサイト内に英語の代替ページを作る方法