在很早之前小编曾经写过一篇关于 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 小时。