2012-02-08 29 views

Trả lời

0

Bạn cần thực hiện thủ công. Thật không may Wordpress không có bất kỳ tùy chọn để làm điều này.

Để tự làm điều đó, hãy xem điều này tương tự question trên SO.

Hoặc bạn có thể thử cài đặt this plugin cho phép bạn thay đổi giá trị thời gian chờ phiên mặc định của Wordpress.

40

Chỉ cần thêm mã này trong functions.php của theme của bạn:

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

Điều này thay đổi thời gian hết hạn cookie, hoặc thời gian hết hạn phiên trên máy chủ? Chúng không giống nhau và chỉ thay đổi thời gian hết hạn cookie không giảm thiểu rủi ro bảo mật của các phiên dài hơn. – Andrew

+3

Đáng ngạc nhiên là đủ, WordPress không sử dụng phiên PHP nào cả. Nó chỉ sử dụng cookie. Và nó sử dụng một số trong số họ với tên băm, vì vậy bạn không muốn gây rối với họ trực tiếp, làm điều đó theo cách WordPress với các bộ lọc như thế này, hoặc bằng cách gọi API WordPress. Ví dụ. nếu bạn muốn đăng xuất người dùng hiện tại, bạn có thể gọi wp_clear_auth_cookie(), http://codex.wordpress.org/Function_Reference/wp_clear_auth_cookie – sootsnoot

+2

Tiết lộ đầy đủ: WordPress * core * không sử dụng phiên. Có thể một số plugin có thể. Bạn sẽ phải tìm kiếm mã nguồn của các plugin nếu bạn muốn chắc chắn. Tôi lưu ý rằng tham chiếu trong câu trả lời được chấp nhận là một bài viết về kiểm soát thời lượng phiên PHP, điều này không ảnh hưởng đến trạng thái đăng nhập của người dùng WordPress. – sootsnoot

Các vấn đề liên quan