如何在 WordPress 中显示用户的上次登录日期(使用和不使用插件)

如果您有一个拥有大量用户的 WordPress 站点,那么审核谁在实际使用该站点可能很重要。 例如,如果您有很多管理员,您可能希望定期减少用户。

这是拥有 WordPress 用户的最后登录日期的地方。 在这篇文章中,我们将启用用户的上次登录时间,您将能够对其进行排序,以便您可以看到谁有一段时间没有登录。

首先,我们将通过一个免费插件来实现这一点:

使用插件显示 WordPress 用户的上次登录日期

显示 WordPress 用户上次登录时间的最简单方法是使用 When Last Login 插件。

安装并激活插件后,您将在用户列表中看到一个新列。

用户在 WordPress 用户列表中的最后一次登录
用户在 WordPress 用户列表中的最后一次登录

如果用户在您添加插件后尚未登录,您将看到“从不”。

手动显示用户的上次登录日期代码片段

如果您熟悉通过 functions.php 或代码片段插件向您的站点添加代码片段,您可以使用它来添加用户的上次登录时间。

这个代码片段做了一些事情,首先它记录了用户登录的时间并将其保存在“last_login”用户元数据中。 它还在管理仪表板的用户列表中添加了一个可排序的“上次登录”管理列。 最后,它允许您通过 [lastlogin] 短代码显示用户的上次登录。 短代码还允许您使用 user_id 变量 [lastlogin user_id=2] 显示特定用户的上次登录。

<?php
//Record user's last login to custom meta
add_action( 'wp_login', 'smartwp_capture_login_time', 10, 2 );

function smartwp_capture_login_time( $user_login, $user ) {
 update_user_meta( $user->ID, 'last_login', time() );
}

//Register new custom column with last login time
add_filter( 'manage_users_columns', 'smartwp_user_last_login_column' );
add_filter( 'manage_users_custom_column', 'smartwp_last_login_column', 10, 3 );

function smartwp_user_last_login_column( $columns ) {
 $columns['last_login'] = 'Last Login';
 return $columns;
}

function smartwp_last_login_column( $output, $column_id, $user_id ){
 if( $column_id == 'last_login' ) {
 $last_login = get_user_meta( $user_id, 'last_login', true );
 $date_format = 'M j, Y';
 $hover_date_format = 'F j, Y, g:i a';
 
 $output = $last_login ? '<div title="Last login: '.date( $hover_date_format, $last_login ).'">'.human_time_diff( $last_login ).'</div>' : 'No record';
 }
 
 return $output;
}

//Allow the last login columns to be sortable
add_filter( 'manage_users_sortable_columns', 'smartwp_sortable_last_login_column' );
add_action( 'pre_get_users', 'smartwp_sort_last_login_column' );

function smartwp_sortable_last_login_column( $columns ) {
 return wp_parse_args( array(
 'last_login' => 'last_login'
 ), $columns );
 
}

function smartwp_sort_last_login_column( $query ) {
 if( !is_admin() ) {
 return $query;
 }
 
 $screen = get_current_screen();
 
 if( isset( $screen->base ) && $screen->base !== 'users' ) {
 return $query;
 }
 
 if( isset( $_GET[ 'orderby' ] ) && $_GET[ 'orderby' ] == 'last_login' ) {
 
 $query->query_vars['meta_key'] = 'last_login';
 $query->query_vars['orderby'] = 'meta_value';
 
 }
 
 return $query;
}

//Add [lastlogin] shortcode
function smartwp_lastlogin_shortcode( $atts ) {
 $atts = shortcode_atts(
 array(
 'user_id' => false,
 ), $atts, 'lastlogin' );

 $last_login = get_the_author_meta('last_login', $atts['user_id']);
 if( empty($last_login) ){ return false; };
 $the_login_date = human_time_diff($last_login);
 return $the_login_date; 
}

add_shortcode( 'lastlogin', 'smartwp_lastlogin_shortcode' );

添加此代码片段后,用户的登录将被记录下来,您将看到一个新的上次登录列。 如果用户在添加后未登录,您将收到“无记录”消息。

last login
last login

如果您熟悉通过 functions.php 或代码片段插件向您的网站添加代码片段,您可以使用它来添加用户的上次登录时间。

Last login
Last login

最重要的是,如果您熟悉 PHP,则可以轻松自定义此功能的所有方面。

此代码片段还添加了在前端显示用户上次登录的功能。 例如,在您网站的作者框中,您可以包含 [lastlogin] 短代码,供用户查看作者上次在线的时间。

我希望本快速指南对向您展示如何显示用户的上次 WordPress 上次登录有用。 如果您有任何问题,请在下面的评论中告诉我。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注