この記事は最後に更新してから1年以上経過しています。

一定時間でログアウトする

説明

ログイン関係を調べている関係で、 wp_set_auth_cookie関数に行き着く。ログイン画面の「ログイン状態を保持する」がチェックされた場合、クッキーの有効期限は14日間。チェックされていない場合は、ブラウザが閉じるまで常に有効となっているんだね。

というわけで本題へ。Webアプリケーションの中にはログインして一定時間何もしなかった場合にログアウトするものがある。今回やりたいことはまさにこれである。

ロジックは至極シンプルで、管理者ページが表示される際に実行されるadmin_initアクションにて、ログイン情報を含んだクッキーの有効期限を設定し続けるだけである。これであれば管理者ページが表示される度に有効期限は延長されるため、最終表示から所定の時間が経過した場合のみログアウトになる。

テーマのfunctions.phpに記述する内容は次の通り。すでにadmin_initアクションを使っている場合は適宜修正して使ってください。

add_action( 'admin_init', 'mytheme_admin_init' );
function mytheme_admin_init() {
	add_filter( 'auth_cookie_expiration', 'mytheme_auth_cookie_expiration', 10, 3 );
	$user = wp_get_current_user();
	wp_set_auth_cookie( $user->ID, true );
}
function mytheme_auth_cookie_expiration( $expiration, $user_id, $remember ) {
	if ( $remember ) $expiration = <span class="blue">3600</span>;
	return $expiration;
}

この例では、管理者ページを表示した際、前回のアクセスから1時間(3,600秒)経過しているとログアウトしてログインページを表示することになる。ログイン維持時間(クッキー有効期限)を変更する場合、青字の部分の秒指定を変更すること。

最近ブラウザを閉じることはあまりなくなってきており、より安全なサイト運用を心がけるなら、多少の利便性を犠牲にしてもログイン維持時間は設定しておくといいだろう。


最終更新 : 2013年05月23日 15:32


お勧め

add_shortcode(2018年5月27日 更新)

void add_shortcode( string $tag, mixed $func )
ショートコード(独自タグ)を追加する。ショートコードは、投稿記事内でテキスト内容がない[tag]や、テキストを内包する[tag]テキスト[/tag]の書式で使用できる独自タグのこと。標準の状態では、 the_content関数によって表示する直前のフィルター処理内でパラメータ$funcで指定した関数・メソッドが実行される。

get_user_setting(2022年1月31日 更新)

mixed get_user_setting( string $name [ , string $default = false ] )
ユーザーインターフェイス設定を取得する。

have_posts(2018年5月27日 更新)

bool have_posts( )
次の投稿データが存在するかを調べる。

in_category(2018年5月27日 更新)

bool in_category( mixed $category [ , mixed $post = null ] )
投稿情報が指定したカテゴリーに属しているか調べる。

add_feed(2024年6月24日 更新)

string add_feed( string $feedname, callable $callback )
フィードを追加する。