让一个用户登录一年?

时间:2015-08-12 作者:markratledge

这必须很简单:我如何保持一个用户-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\' );

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

结束

相关推荐

使用PHP脚本从多个WordPress站点检索数据

我想运行一个PHP脚本,迭代在特定文件夹中找到的WordPress站点,并使用get\\u plugin函数读取每个站点的插件信息在下面的代码中,我尝试在WP文件夹中要求API函数,并使用它来检索数据。然而,问题是多重“需求”。示例代码:function get_sites_plugins() { foreach($this->all_sites as $site_folder) { $plugins = get_site_plugins($site_fold