如果一个帐户同时在多个地点同时登陆时如果修改东西,另一个地点又登陆同一帐号的话很容易报错,对于开放的注册的WordPress 网站来说,特别是有会员购买服务的站点的话可能需要禁止用户共享帐户的,简单来说就是要禁止一个帐户同时多人访问功能。
小编一开始实现这个功能用了wordpress一个插件使IP限制一天访问数量,但是小编考虑到用户要不断的发文章或者回复这样的话还是不行。最近小编在论坛上看见了一个关于wordpress v4.1禁止一个帐户同时多人访问内容,于是做了一个总结教大家如何在无忧主机php空间中完美的实现Wordpress v4.1版本实现禁止一个帐户同时多人访问。
找到functions.php添加如下代码:
function pcl_user_has_concurrent_sessions() { return ( is_user_logged_in() && count( wp_get_all_sessions() ) > 1 ); } function pcl_get_current_session() { $sessions = WP_Session_Tokens::get_instance( get_current_user_id() ); return $sessions->get( wp_get_session_token() ); } function pcl_disallow_account_sharing() { if ( ! pcl_user_has_concurrent_sessions() ) { return; } $newest = max( wp_list_pluck( wp_get_all_sessions(), 'login' ) ); $session = pcl_get_current_session(); if ( $session['login'] === $newest ) { wp_destroy_other_sessions(); } else { wp_destroy_current_session(); } } add_action( 'init', 'pcl_disallow_account_sharing' );
如果各位朋友丛安全考虑的话建议还是使用这个功能,如果怕代码输入错的用户小编在教大家一个简单的办法安装 Prevent Concurrent Logins插件直接安装启用即可!