在很早之前小編曾經寫過一篇關於 WordPress 系統的 cookie 相關的文章:《 WordPress 二次開發教程手記:寫入 cookie 記錄訪客行為》,今天小編又搜刮出來幾個關於 WordPress 系統的 Cookie 技術代碼小片段,藉此拿來分享給大家。
一、自定義 WordPress 用户登錄 Cookie 過期時間。
WordPress 默認的用户登錄 Cookie(Auth Cookie) 過期時間並不算太長,在勾選了 「記住我」 的情況下為 14 天,否則為 48 小時。在常規使用的情況下,最長為 14 天的過期時間已經夠用,但如果要構建一個需要長期保持登錄狀態的項目的話,14 天顯然是不夠的。不過慶幸的是 WordPress 自身提供了一個 hook 允許自行修改 Cookie 過期時間,只需要一個簡單的 filter 就可以實現。
add_filter('auth_cookie_expiration', 'wxd_cookie', 99, 3);
function wxd_cookie($expiration, $user_id = 0, $remember = true) {
if($remember) {
$expiration = 31536000;
}
return $expiration;
}
把上面的代碼粘貼到當前主題的 functions.php 文件裏,就可以把在勾選 「記住我」 的情況下把 Auth Cookie 的過期時間設置為 365 天,$expiration 為 Auth Cookie 過期時間的時間戳,你可以自行設定。
二、自定義 WordPress 評論者 Cookie 過期時間
上面説了怎麼修改 WordPress 用户登錄 Cookie 過期時間,但對於大部分的 WordPress 站點來説,除了管理員以外,並沒幾個用户需要登錄。甚至評論都是開放的,不需要登錄。恰好有人問我怎麼修改評論者的 Cookie 過期時間,寫篇文章公開説明一下。
WordPress 默認對於未登錄的評論者會設置三個分別用於記錄名字、郵箱、網址的 Cookie,這三個 Cookie 的有效期為 500000 分鐘 (差不多一年),要修改這三個 Cookie 的有效期可以通過下面的代碼來實現。
add_filter('comment_cookie_lifetime', 'wxd_comment_cookie');
function wxd_comment_cookie($lifetime) {
return 7200;
}
上面的代碼可以把評論者信息的保存時間設為 2 小時。