WordPress 用户列表增加同时显示【注册时间】和【最后登录时间】。
WordPress 默认代码原生用户列表默认不展示注册时间和最后登录时间(注册时间只在编辑用户页才有显示),增加功能代码到functions即可:
// 记录用户最后登录时间
function record_last_login($user_login, $user) {
update_user_meta($user->ID, 'last_login', current_time('timestamp'));
}
add_action('wp_login', 'record_last_login', 10, 2);
// 用户列表增加两列:注册时间、最后登录
function add_user_custom_columns($columns) {
$columns['user_registered'] = '注册时间';
$columns['last_login'] = '最后登录';
return $columns;
}
add_filter('manage_users_columns', 'add_user_custom_columns');
// 填充自定义列数据
function show_user_custom_column_value($value, $column_name, $user_id) {
$user = get_userdata($user_id);
if ($column_name === 'user_registered') {
return $user->user_registered;
}
if ($column_name === 'last_login') {
$last_login = get_user_meta($user_id, 'last_login', true);
if ($last_login) {
return date('Y-m-d H:i:s', $last_login);
}
return '从未登录';
}
return $value;
}
add_action('manage_users_custom_column', 'show_user_custom_column_value', 10, 3);
// 支持按注册时间排序
function user_registered_column_sortable($columns) {
$columns['user_registered'] = 'user_registered';
return $columns;
}
add_filter('manage_users_sortable_columns', 'user_registered_column_sortable');
使用说明
- 放到
functions.php或者代码片段插件(Code Snippets)里,推荐 Code Snippets,避免主题更新丢失代码 - 效果:用户 → 所有用户列表多出两列:注册时间、最后登录
- 注意点:
- ✅ 注册时间:WP 原生数据库自带,所有老用户都能正常显示,不需要等
- ⚠️ 最后登录:只记录代码启用之后的登录行为;之前的历史登录记录没有,会显示「从未登录」
- 如果时间时区不对:WP 后台【设置→常规】确认时区设置
排查小提示
- 加完代码看不到列:右上角【选项】(屏幕选项),打开看看有没有勾选「注册时间、最后登录」这两个自定义列
- 白屏:代码粘贴时不要带中文引号,建议用代码片段插件,出错可以一键关闭片段
