2012-02-08 28 views
14

我要到期的會話,如果用戶(管理員)處於非活動狀態在WordPress位置15分鐘計時,如何改變會議爲止在WordPress

誰能告訴我什麼是WordPress中默認的會話到期時間?以及如何更改默認的過期時間。

回答

0

您需要手動完成。不幸的是Wordpress沒有這樣做的選擇。

要做到這一點自己看到這個類似的question SO。

或者您可以嘗試安裝this插件,該插件允許您更改Wordpress默認會話超時值。

40

只需在主題functions.php添加以下代碼:

add_filter('auth_cookie_expiration', 'my_expiration_filter', 99, 3); 
function my_expiration_filter($seconds, $user_id, $remember){ 

    //if "remember me" is checked; 
    if ($remember) { 
     //WP defaults to 2 weeks; 
     $expiration = 14*24*60*60; //UPDATE HERE; 
    } else { 
     //WP defaults to 48 hrs/2 days; 
     $expiration = 2*24*60*60; //UPDATE HERE; 
    } 

    //http://en.wikipedia.org/wiki/Year_2038_problem 
    if (PHP_INT_MAX - time() < $expiration) { 
     //Fix to a little bit earlier! 
     $expiration = PHP_INT_MAX - time() - 5; 
    } 

    return $expiration; 
} 
+1

這是否更改cookie的到期時間,或者在服務器上的會話過期時間?它們不是一回事,只是更改cookie過期時間並不能減輕較長會話的安全風險。 – Andrew 2014-05-08 05:39:59

+3

令人驚訝的是,WordPress根本不使用PHP會話。它只使用cookie。它使用一些哈希名稱,所以你不想直接混淆它們,使用像這樣的過濾器的WordPress方式,或者通過調用WordPress API。例如。如果你想註銷當前用戶,你可以調用wp_clear_auth_cookie(),http://codex.wordpress.org/Function_Reference/wp_clear_auth_cookie – sootsnoot 2014-08-10 14:22:23

+2

完全公開:WordPress * core *不使用會話。有可能是一些插件。如果你想確定,你必須搜索你的插件的源代碼。我注意到,接受答案中的參考文獻是關於控制PHP會話持續時間的文章,它不會影響WordPress用戶的登錄狀態。 – sootsnoot 2014-08-10 14:38:33