目次
2024/11/05時点
こんな感じ。
// 自動ログアウトまでの期間を調整する。
function my_auth_cookie_expiration($length, $user_id, $remember) {
// ユーザーIDからユーザー名を取得する。
$user_login = get_userdata($user_id)->user_login;
// 管理者のユーザー名なら。。。
if ($user_login == 'kanrisha@example.net')
// 管理者の場合は1か月とする。
return MONTH_IN_SECONDS;
else
// その他の場合は1日。
return DAY_IN_SECONDS;
}
add_filter('auth_cookie_expiration', 'my_auth_cookie_expiration', 10, 3);
ブラウザ側のキャッシュをクリア、サーバーのキャッシュをクリア、Cookieの削除、全プラグインの無効化、子テーマのfunctions.phpの無効化・・・すべてやっても効果なし。この現象が発生するようになった少し前にFirefoxのアップデートがあったのでこれのせいかとも思ったんだけどChromeでも現象発生。
仕方ないのでネットで見つけた自動ログアウトまでの期間を変更するコード(対症療法)を少し変えて子テーマのfunctions.phpに追加。
6行目の'kanrisha@example.net'をブログ管理者の「ユーザー名」に変更すればOK。「ユーザー名」は管理者画面のプロフィールにある「ユーザー名」の値。最後にいったんログアウトして再度ログインする。これをやんないと効果がないので要注意。
なお、8行目や11行目で指定する期間を表す定数は、以下のように1分間、1時間、丸1日、1週間、1か月間、1年間が定義されてる。
Easier Expression of Time Constants « WordPress Codex
Blog Tool and Publishing Platform
2024/11/12追記
なぜか症状が再発。
2日置き(対策前は数分置き)くらいで勝手にログアウトされてしまう。
ブラウザのデベロッパーツールで確認するとそれらしい名前のCookieが有効期限1か月先の日付で存在しているのだが・・・。
2024/11/19追記
症状が治まったみたい。
ログイン画面にある「ログイン状態を保存する」チェックボックスをオンにしてなかったから2日でログアウトしてしまっていたのかも。
以上
コメント