我试图延长身份验证cookie的使用寿命,但仅限于管理员。
函数中的我的代码。php是:
add_filter( \'auth_cookie_expiration\', \'change_admin_cookie_logout\' );
function change_admin_cookie_logout( $expirein ) {
if ($user_id == current_user_can(\'promote_users\')) {
return 60; // yes, I know this is 1 minute
} return 20;
}
我的问题有两个:
当我关闭else语句时,登录失败。换句话说,我似乎必须定义管理员的过期时间&;非管理员,而不是单独修改管理员过期时间。
上述公式忽略了“记住我”,并将其应用于全局。我希望它仅在选中“记住我”时才适用。
我尝试过调整wp\\u set\\u auth\\u cookie,但遇到了一些问题,又回到了这种方法。非常感谢您的帮助!
最合适的回答,由SO网友:Stephen Harris 整理而成
未测试,但以下内容只应更改选择“记住我”的管理员的过期时间。
function wpse108399_change_cookie_logout( $expiration, $user_id, $remember ){
if( $remember && user_can( $user_id, \'manage_options\' ) ){
$expiration = 60;// yes, I know this is 1 minute
}
return $expiration;
}
add_filter( \'auth_cookie_expiration\',\'wpse108399_change_cookie_logout\', 10, 3 );