这必须很简单:我如何保持一个用户-my-user - 登录一年?(我正在检查开发工具控制台中登录的cookie)。
Update 8/16/15
这项工作:
add_filter( \'auth_cookie_expiration\', \'keep_me_logged_in_for_1_year\', 10, 3 );
function keep_me_logged_in_for_1_year( $ttl, $user_id, $remember ) {
if( 1 === $user_id )
$ttl = YEAR_IN_SECONDS;
return $ttl;
}
使用阵列选项,这适用于多个用户:
add_filter( \'auth_cookie_expiration\', \'keep_me_logged_in_for_1_year\', 10, 3 );
function keep_me_logged_in_for_1_year( $ttl, $user_id, $remember ) {
if( in_array( $user_id, array( 1, 2 ) ) )
$ttl = YEAR_IN_SECONDS;
return $ttl;
}
Update 8/12/15: Re:Rarst的回答如下:自get_currentuserinfo 是可插拔的,我将如何使用apply_filters 在这种情况下我得到一个Call to undefined function get_currentuserinfo() 在简单插件中使用以下函数时出错:
global $user_login;
get_currentuserinfo();
if ($user_login == "my-user") {
function keep_me_logged_in_for_1_year( $expirein ) {
return 31556926; // 1 year in seconds
}
add_filter( \'auth_cookie_expiration\', \'keep_me_logged_in_for_1_year\' );
}
但法典使用
global:
https://codex.wordpress.org/Function_Reference/get_currentuserinfo当然,这会让所有用户登录一年:
function keep_me_logged_in_for_1_year( $expirein ) {
return 31556926; // 1 year in seconds
}
add_filter( \'auth_cookie_expiration\', \'keep_me_logged_in_for_1_year\' );
最合适的回答,由SO网友:Rarst 整理而成
get_currentuserinfo() 是一个可插入功能,在插件加载阶段不可用。
除此之外,您不应该有条件地添加过滤器,而应该使用过滤器提供的数据。如果查看筛选器调用:
apply_filters( \'auth_cookie_expiration\', 14 * DAY_IN_SECONDS, $user_id, $remember )
$user_id 作为第二个参数提供。您只需让过滤器侦听它并有条件地修改它的return。
以下是一个未经测试的示例:
add_filter( \'auth_cookie_expiration\', \'keep_me_logged_in_for_1_year\', 10, 3 );
function keep_me_logged_in_for_1_year( $ttl, $user_id, $remember ) {
if( 123 === $user_id )
$ttl = YEAR_IN_SECONDS;
return $ttl;
}