纯代码WordPress后台添加用户最近登录时间显示功能

以下是完整可用的WordPress用户最后登录时间记录和显示解决方案,包含数据库更新和显示优化:

这段代码需要添加到当前主题的functions.php文件中。

/** 纯代码WordPress后台添加用户最近登录时间显示功能 **/
// 记录用户最后登录时间(使用时间戳存储)
function record_user_last_login($user_login) {
    $user = get_user_by('login', $user_login);
    if ($user) {
        update_user_meta($user->ID, 'last_login_time', time());
    }
}
add_action('wp_login', 'record_user_last_login');

// 为现有用户初始化最后登录时间
function init_last_login_for_existing_users() {
    $users = get_users();
    foreach ($users as $user) {
        if (!get_user_meta($user->ID, 'last_login_time', true)) {
            // 如果没有记录,设置为用户注册时间
            $registered = strtotime($user->user_registered);
            update_user_meta($user->ID, 'last_login_time', $registered);
        }
    }
}
add_action('admin_init', 'init_last_login_for_existing_users');

// 在用户列表添加最后登录列
function add_last_login_column($columns) {
    $columns['last_login'] = '最后登录';
    return $columns;
}
add_filter('manage_users_columns', 'add_last_login_column');

// 显示最后登录时间(带时区转换)
function display_last_login_column($value, $column_name, $user_id) {
    if ('last_login' === $column_name) {
        $timestamp = get_user_meta($user_id, 'last_login_time', true);
        if ($timestamp) {
            return date_i18n('Y-m-d H:i', $timestamp);
        }
        return '从未登录';
    }
    return $value;
}
add_filter('manage_users_custom_column', 'display_last_login_column', 10, 3);

// 使最后登录列可排序
function make_last_login_column_sortable($columns) {
    $columns['last_login'] = 'last_login_time';
    return $columns;
}
add_filter('manage_users_sortable_columns', 'make_last_login_column_sortable');

这个解决方案包含:

  1. 精确时间戳记录
  2. 现有用户初始化
  3. 时区正确显示
  4. 列排序功能。

安装后需要访问/wp-admin/触发初始化,之后所有登录都会自动记录。