这个功能一般是在个人资料出现的,但是有些时候我们并不需要用户进入后台,比如本站是禁止用户进入后台的,所有后台可能出现的功能均通过别的方式输出到了前端,今天突然想把这个功能也移动到前端或者说让其更加方便的使用,默认位置如下:
经过处理之后,我这边是添加到了用户管理页面:
当然,至于为什么不用到前端,因为我个人暂时没有这个需求,毕竟本站已经对于账号登陆做出了限制,这个措施仅仅是方便自己以后有需要。
如果你对于如何添加带前端这个功能比较感兴趣的话,可以尝试看看下面链接的文章: https://wordpress.stackexchange.com/questions/300219/how-to-log-out-everywhere-else-destroy-all-sessions-all-other-devices
至于如何实现,我个人推荐通过AJAX进行处理比较好,大家可以自己研究一下,实践起来难度不大。
最后附上功能方面的完整代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
function user_switch_action( $actions, $user ) { $capability = ( is_multisite() ) ? 'manage_site' : 'manage_options'; if ( current_user_can( $capability ) ) { $actions['destroy_session'] = '<a title="清空该用户Session" href="' . wp_nonce_url( "users.php?action=destroy_session&users=$user->ID", 'bulk-users' ) . '">清空登录信息</a>'; } return $actions; } add_filter( 'user_row_actions', 'user_switch_action', 10, 2 ); function handle_user_switch_action( $sendback, $action, $user_ids ) { if ( $action === 'destroy_session' ) { $sessions = WP_Session_Tokens::get_instance( $user_ids ); $sessions->destroy_all(); } return home_url(); } add_filter( 'handle_bulk_actions-users', 'handle_user_switch_action', 10, 3 ); |