在很早之前小編曾經寫過一篇關於 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 小時。