Redis WordPress 更新配置工具
Redis WordPress 更新配置工具是一个用于优化 WordPress 更新检查频率的插件。通过使用 Redis 缓存来控制所有 WordPress 更新检查的频率,有效减少对 WordPress API 的请求次数,提升网站性能。
Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/obaby/baby-wp-update-config-tool/archive/refs/heads/main.zip插件简介
Redis WordPress 更新配置工具是一个用于优化 WordPress 更新检查频率的插件。通过使用 Redis 缓存来控制所有 WordPress 更新检查的频率,有效减少对 WordPress API 的请求次数,提升网站性能。
⚠️ 重要提示
在使用本插件之前,您需要首先配置 WordPress 的 Redis 缓存功能。
本插件依赖于 Redis 缓存系统来存储更新检查的时间戳。如果您的 WordPress 站点未配置 Redis 缓存,插件将无法正常工作。请确保:
- 已安装并配置 Redis 服务器
- 已安装 WordPress Redis 缓存插件(如 Redis Object Cache、WP Redis 等)
- Redis 缓存功能已正常启用并运行
如果 Redis 缓存未配置,插件在初始化时会记录警告信息,但不会阻止插件运行。
功能特性
控制的更新检查类型
插件控制以下 5 种 WordPress 更新检查:
-
WordPress 核心版本检查 (
wp_version_check)- 检查 WordPress 核心是否有新版本可用
-
主题更新检查 (
wp_update_themes)- 检查已安装主题是否有更新
-
插件更新检查 (
wp_update_plugins)- 检查已安装插件是否有更新
-
浏览器版本检查 (
wp_check_browser_version)- API:
POST https://api.wordpress.org/core/browse-happy/1.1/ - 检查浏览器版本兼容性
- API:
-
PHP 版本检查 (
wp_check_php_version)- API:
GET https://api.wordpress.org/core/serve-happy/1.0/?php_version=X.X.X - 检查 PHP 版本兼容性
- API:
工作原理
- 缓存机制:不依赖 WordPress 的 transient,直接使用 Redis 缓存存储最后检查时间
- 智能跳过:如果 24 小时内已经执行过更新检查,自动跳过,不发送 API 请求
- 缓存有效期:默认缓存有效期为 24 小时(86400 秒),可自定义修改
- 多维度拦截:通过多种 WordPress 钩子和过滤器实现全面拦截,确保更新检查被有效控制
系统要求
- WordPress 版本:5.0 或更高版本
- PHP 版本:7.4 或更高版本
- 必需功能:WordPress Redis 缓存功能必须已配置并启用
安装方法
方式一:通过 WordPress 后台安装
- 下载插件压缩包
- 登录 WordPress 后台
- 进入「插件」→「安装插件」
- 点击「上传插件」,选择下载的压缩包
- 点击「现在安装」
- 安装完成后点击「启用插件」
方式二:手动安装
- 下载插件并解压
- 将插件文件夹上传到
/wp-content/plugins/目录 - 在 WordPress 后台的「插件」页面中启用插件
配置说明
前置条件
在安装并启用本插件之前,请确保已完成以下配置:
-
安装 Redis 服务器
# Ubuntu/Debian sudo apt-get install redis-server # CentOS/RHEL sudo yum install redis -
安装 WordPress Redis 缓存插件
- 推荐使用「Redis Object Cache」插件
- 下载地址:https://wordpress.org/plugins/redis-cache/
- 安装后启用,确保插件显示「已连接」
-
验证 Redis 连接
- 在 WordPress 后台查看 Redis 缓存插件状态
- 确保显示「连接成功」或类似状态
插件配置
插件安装后无需额外配置即可使用。默认设置:
- 缓存有效期:24 小时(86400 秒)
- 自动运行:启用后自动开始控制更新检查
如需修改缓存有效期,可编辑插件主文件中的 WP_UPDATE_CHECK_EXPIRATION 常量:
define('WP_UPDATE_CHECK_EXPIRATION', DAY_IN_SECONDS); // 默认 24 小时
使用方法
正常使用
插件启用后会自动开始工作,无需任何额外操作:
- 首次访问 WordPress 后台时,会执行更新检查并设置 Redis 缓存
- 24 小时内再次访问后台时,自动跳过更新检查,减少 API 请求
- 24 小时后缓存过期,再次访问时会重新执行更新检查
调试功能
查看更新检查状态
在 WordPress 后台的任意页面 URL 后添加参数 ?debug_all_checks=1:
https://your-site.com/wp-admin/index.php?debug_all_checks=1
或在启用 WP_DEBUG 模式的情况下,插件会在后台自动显示状态信息。
状态信息包括:
- 上次检查时间
- 距离现在的时间
- 剩余缓存时间
- 下次检查时间
清除所有缓存
如需强制立即执行更新检查,可以访问:
https://your-site.com/?clear_all_check_cache=1
注意:需要管理员权限才能清除缓存。
技术细节
缓存键名
插件使用以下 Redis 缓存键名:
wp_core_update_check_time- WordPress 核心更新检查wp_themes_update_check_time- 主题更新检查wp_plugins_update_check_time- 插件更新检查wp_browser_version_check_key- 浏览器版本检查wp_php_version_check_key- PHP 版本检查
实现原理
-
拦截更新检查钩子
- 在
admin_init钩子中移除 WordPress 原生的更新检查函数 - 添加自定义检查逻辑,先查询 Redis 缓存
- 在
-
HTTP 请求拦截
- 通过
pre_http_request过滤器拦截 API 请求 - 如果缓存有效,返回假数据,跳过实际 API 请求
- 通过
-
缓存设置
- 通过
http_response过滤器捕获成功的 API 响应 - 在响应成功后设置 Redis 缓存,记录检查时间
- 通过
-
兜底方案
- 在
shutdown钩子中检查是否有遗漏的缓存设置 - 确保所有更新检查都能正确记录缓存
- 在
常见问题
Q: 插件启用后没有效果?
A: 请检查以下几点:
- 确保已配置并启用 WordPress Redis 缓存功能
- 检查 Redis 服务器是否正常运行
- 查看 WordPress 错误日志(如启用 WP_DEBUG)
- 访问调试页面查看状态:
?debug_all_checks=1
Q: 如何确认 Redis 缓存是否工作?
A: 可以通过以下方式验证:
- 安装并启用 Redis 缓存插件,查看连接状态
- 使用调试功能查看插件状态页面
- 如果缓存正常,状态页面会显示上次检查时间
Q: 可以修改缓存有效期吗?
A: 可以。编辑插件主文件 baby-wp-update-config-tool.php,修改 WP_UPDATE_CHECK_EXPIRATION 常量:
// 修改为 12 小时
define('WP_UPDATE_CHECK_EXPIRATION', 12 * HOUR_IN_SECONDS);
// 修改为 48 小时
define('WP_UPDATE_CHECK_EXPIRATION', 2 * DAY_IN_SECONDS);
Q: 插件会影响更新功能吗?
A: 不会。插件只是控制检查频率,不会影响实际的更新功能。当缓存过期后,仍然会正常执行更新检查。
Q: 如何临时禁用插件的某个功能?
A: 可以通过停用插件来临时禁用所有功能。如果需要永久禁用,可以删除插件。
性能优化
使用本插件可以带来以下性能提升:
- 减少 API 请求:24 小时内只执行一次更新检查,大幅减少对 WordPress API 的请求
- 加快后台加载速度:跳过不必要的更新检查,后台页面加载更快
- 降低服务器负载:减少外部 API 请求,降低服务器网络和 CPU 使用率
- 提升用户体验:后台操作更流畅,响应更快
版本历史
1.0.0
- 初始版本发布
- 支持控制 5 种更新检查类型
- 集成 Redis 缓存机制
- 添加调试和状态查看功能
支持与反馈
- 插件作者:obaby
- 网站:https://h4ck.org.cn
- 问题反馈:如有问题或建议,请访问作者网站联系
许可证
本插件采用 GPL v2 或更高版本许可证发布。
详情请参阅:GNU General Public License
免责声明
本插件为免费开源软件,作者不对使用本插件造成的任何损失承担责任。使用前请确保已备份网站数据,并在测试环境中验证功能正常后再应用到生产环境。
再次提醒:使用本插件前,请确保已正确配置 WordPress 的 Redis 缓存功能!