此功能无法直接使用,您必须跟踪数据库内的登录(可能是暂时的)(&;检查瞬态是否可用。
function check_for_admin() {
$user = wp_get_current_user();
if(in_array(\'administrator\', $user->roles))
set_transient(\'admin_ip\', get_ip(), 60*10);
}
add_action(\'init\', \'check_for_admin\');
之后,您可以使用
get_transient(\'admin_ip\')
&;检查是否可用
要检索IP,可以使用toscho的代码。
编辑:
这个60*10
在代码中,表示如果在过去10分钟内没有管理员处于活动状态,则认为他们都处于脱机状态&;清理数据库。
当用户手动注销时,也可以删除瞬态,您需要挂接到\'clear_auth_cookie\'
清理数据库的操作。
function clear_the_transient() {
$user = wp_get_current_user();
if(in_array(\'administrator\', $user->roles))
delete_transient(\'admin_ip\')
}
add_action(\'clear_auth_cookie\', \'clear_the_transient\');
当只有1名管理员时,此代码将在您的情况下工作。但这段代码有一个大问题,它会从数据库中删除IP,即使有2个管理员在线&;其中只有一个注销。为了克服这种情况,您必须在数据库中存储用户id及其相应的上次活动时间。