はじめに
管理者として「誰が最後にいつログインしたのか」を把握したい場面は多くあります。
例えば、スタッフや会員制サイトのユーザーの活動状況を確認したり、長期間ログインしていないユーザーを検出したりするケースです。
そこで、プラグイン「When Last Login」などを使わずに、ユーザーがログインした時刻を記録し、管理画面の「ユーザー一覧」にその日時を表示します。
この記事では、この方法について説明します。
完成イメージ

実装手順
以下のコードをfunctions.phpに追加します。
// 管理画面一覧にカラムを追加
add_filter('manage_users_columns', function ($columns) {
$columns['last_login'] = '最終ログイン';
return $columns;
});
// 管理画面一覧のカラムにデータを表示
add_filter('manage_users_custom_column', function ($value, $column_name, $user_id) {
if ($column_name !== 'last_login') {
return $value;
}
$last_login = get_user_meta($user_id, 'my_last_login', true);
if (!$last_login) {
return '未ログイン';
}
return $last_login;
}, 10, 3);
// ログイン時に現在時刻を保存
add_action('wp_login', function ($user_login, $user) {
update_user_meta($user->ID, 'my_last_login', current_time('mysql'));
}, 10, 2);
さいごに
今回紹介した方法を使えば、ユーザーの最終ログイン時刻を記録し、管理画面の「ユーザー一覧」に表示することができます。
サイトの運用状況を把握したい場合や、アクティブユーザーの管理に活用したい場合に、ぜひこの方法を取り入れてみてください。