在默认的 WordPress 后台“用户”管理页面中,我们可以看到用户名、邮箱、角色等信息,但却没有一个重要的数据:用户的注册日期。对于站点管理员而言,了解每个用户何时注册,有助于更好地分析用户活跃度、过滤可疑账号,甚至用于会员营销活动。
在本篇教程中,我将教你如何通过简单的代码,在“用户”列表页添加一列“注册日期”,并且让它支持排序并正确显示为你设置的本地时区时间。
🧩 步骤一:添加列标题
我们使用 WordPress 提供的 manage_users_columns
过滤器来新增一个名为“注册日期”的列:
add_filter('manage_users_columns', 'add_user_register_date_column');
function add_user_register_date_column($columns) {
$columns['register_date'] = '注册日期';
return $columns;
}
📅 步骤二:显示用户注册时间(本地时区)
默认情况下,user_registered
显示的是 UTC 时间。如果你希望注册时间与 WordPress 后台设置的时区一致(例如中国标准时间 CST),可以这样写:
add_action('manage_users_custom_column', 'show_user_register_date_column_content', 10, 3);
function show_user_register_date_column_content($value, $column_name, $user_id) {
if ('register_date' == $column_name) {
$user = get_userdata($user_id);
// 获取站点时区
$timezone = wp_timezone(); // WordPress 5.3+
$datetime = new DateTime($user->user_registered, new DateTimeZone('UTC'));
$datetime->setTimezone($timezone);
return $datetime->format('Y-m-d H:i');
}
return $value;
}
🔃 步骤三:启用列排序功能
为了让管理更加高效,我们可以让“注册日期”这一列支持排序功能,只需添加以下代码:
add_filter('manage_users_sortable_columns', 'make_user_register_date_column_sortable');
function make_user_register_date_column_sortable($columns) {
$columns['register_date'] = 'user_registered';
return $columns;
}
✨ 高级扩展建议
- ✅ 时间格式优化:你可以使用
Y年m月d日 H:i
或date_i18n()
显示本地格式。 - 🔒 权限控制:可结合
current_user_can()
判断是否为管理员,控制是否显示该列。 - 📊 数据分析:进一步扩展,结合用户注册趋势图、活跃度评分等功能。
📝 总结
通过简单的 3 步,我们就为 WordPress 用户管理列表增强了一项实用的功能:“注册日期”列,并且准确反映了你设置的本地时区时间。这对于中大型站点的用户管理尤其重要,也是提升后台可用性的小技巧。
你是否也有在使用 WordPress 做多用户站点?欢迎在评论区分享你的技巧和问题!