基于用户角色扩展AUTH_COOKIE_EXPIRATION

时间:2013-07-30 作者:bulldog

我试图延长身份验证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,但遇到了一些问题,又回到了这种方法。非常感谢您的帮助!

1 个回复
最合适的回答,由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 );

结束

相关推荐

Functions.php中的帖子ID错误

我试图在我的函数中执行以下代码。php更改我的wordpress博客的标题。function filter_pagetitle($url) { global $wp_query; $the_post_id = $wp_query->post->ID; $the_post_data = get_post($the_post_id); return $the_post_da