修改 WordPress 用户登录 Cookie 过期时间
WordPress 登录会话过期时间
如果想减少登录 WordPress 的麻烦,本文可能会有所帮助。 默认情况下,WordPress 登录会话过期时间:- 未勾选"记住我"的超时时间为48小时。
- 勾选"记住我"的超时时间为14天。
延长这一期限
从安全角度来看,不建议延长此期限,但如果仅从特定设备执行管理任务,则可通过延长此期限将减少登录频率。向当前主题的 functions.php 添加过滤器钩子
add_filter('auth_cookie_expiration', [$this, 'custom_cookie_expiration'], 99, 3);
function custom_cookie_expiration($expiration, $user_id, $remember) {
return $remember ? 60*60*24*365 : 60*60*24*2; // 勾选记住我:1年,未勾选:48小时
}
把上面的代码粘贴到当前主题的functions.php
文件里,就可以把在勾选“记住我”的情况下把 Auth Cookie 的过期时间设置为365
天,Auth Cookie 过期时间可以自行设定。
或者,将代码封装为 WordPress 插件
插件文件结构:
/wp-content/plugins/custom-login-timeout/
└── custom-login-timeout.php # 主插件文件
插件代码实现(custom-login-timeout.php)
<?php
/**
* Plugin Name: Custom Login Timeout
* Description: 修改 WordPress 登录会话过期时间,未勾选"记住我"的超时时间为 172800秒(48小时),勾选"记住我"的超时时间为 31536000秒(1年)
* Version: 1.0.0
* Author: 您的名称
* License: GPL2
*/
if (!defined('ABSPATH')) exit;
class CustomLoginTimeout {
public function __construct() {
add_filter('auth_cookie_expiration', [$this, 'custom_cookie_expiration'], 99, 3);
}
public function custom_cookie_expiration($expiration, $user_id, $remember) {
return $remember ? 60*60*24*365 : 60*60*24*2; // 记住我:1年 / 未勾选:48小时
}
}
// 初始化插件
new CustomLoginTimeout();
插件安装与使用
- 文件部署:
- 创建
custom-login-timeout
文件夹到wp-content/plugins/
- 将上述代码保存为
wp-content/plugins/custom-login-timeout.php
- 创建
- 激活插件:
- 登录 WordPress 后台 → 插件 → 启用 "Custom Login Timeout"
生效
- 清除浏览器缓存和 Cookie 后重新登录。
验证修改是否生效
通过浏览器开发者工具查看,以 Chrome 浏览器 为例:- 登录 WordPress 后台:访问网站后台(如
https://yourdomain.com/wp-admin
),完成登录。 - 打开开发者工具:
- 右键点击页面 → 选择“检查”或按
F12
/Ctrl+Shift+I
。
- 右键点击页面 → 选择“检查”或按
- 定位 Cookie:
- 切换到 Application(应用)标签页。
- 左侧菜单选择 Storage → Cookies → https://yourdomain.com。
- 查看 Cookie 详情:
- 找到名为
wordpress_logged_in_[hash]
的 Cookie([hash]
是随机生成的字符串)。 - 查看 Expires/Max-Age 字段,显示具体过期时间(如
2026-09-22T12:00:00.000Z
)。
- 找到名为
注意:
当用户登录时会应用auth_cookie_expiration钩子,因此它不会影响已经登录的用户。