虽说 WordPress 只是一个博客系统,但它的强大甚至于可与许多专业 CMS 系统并肩,要知道美国白宫的官网都是用 WP 搭建的(题外话)。因此在商业项目中,有很多外包的网站都是使用 WordPress 系统,一般来说开发者都会给客户一个独立的账号去管理内容。
这样就会有几率出现下面这个场景:
客户说使用后台遇到了某某问题,开发者登陆后发现并没有,而客户坚持说“我的账号登上去会出现”,那只有拿着客户的账号去登陆测试了。这就有几个问题了:
- 如果你不知道他的密码,就要向他询问;如果多次解决问题而你又没有记住他的密码,那就要多次询问…
- 拿到密码,你需要退出,再登陆客户的账号,真麻烦…
现在给你的 WordPress 站点添加一个功能“以此身份登陆”,让你在管理员后台一键进入别的账户后台,是不是很爽?如下图:
WordPress 站点添加“以此身份登陆”功能
将下面代码放入你的主题模板函数 functions.php 文件即可
- add_filter(‘user_row_actions’, function($actions, $user){
- $capability = (is_multisite())?’manage_site’:’manage_options’;
- if(current_user_can($capability)){
- $actions[‘login_as’] = ‘<a title=“以此身份登陆” href=“‘.wp_nonce_url(“users.php?action=login_as&users=$user->ID“, ‘bulk-users’).'”>以此身份登陆</a>’;
- }
- return $actions;
- }, 10, 2);
- add_filter(‘handle_bulk_actions-users’, function($sendback, $action, $user_ids){
- if($action == ‘login_as’){
- wp_set_auth_cookie($user_ids, true);
- wp_set_current_user($user_ids);
- }
- return admin_url();
- },10,3);
以上代码来自于“我爱水煮鱼”博客
不过这也有一个小小的不足就是,非管理员账户将不支持这个功能,因此你无法一键“滚回来”了,不过多少提高了工作效率,不是么?