WordPress 手动更新后无限跳转“无需升级”页面
今天打开wordpress网站后台,提示wordpress核心有更新提示,最新版7.0.2_cn,试了试自动更新没成功,可能是虚拟机性能带宽太差。
问题复现
决定手动下载最新源码覆盖升级,在全部文件覆盖完后,我试着打开网站首页,提示要更新数据库,我点了更新,提示更新成功然后跳转到了网站首页。我准备进入仪表盘,但是跳转到另一个界面,提示无需升级,点击继续,跳转网站首页,进仪表盘,还是跳转这个无需升级的页面,导致彻底无法进入后台。

原因分析
这次更新的问题原因是由服务器端的对象缓存(Object Cache) 引起的,我用的是wpopt和LiteSpeed缓存来管理缓存的,WordPress 会在 wp-content 目录下生成一个名为 object-cache.php 的缓存文件,手动覆盖更新后,旧版本的缓存文件没有被清除,导致 WordPress 在读取数据库版本信息时,读取到了缓存中的旧数据,从而误判数据库状态,陷入“认为需要升级 -\> 检查发现已最新 -\> 再次认为需要升级”的死循环。
解决方案
进入wordpress目录,找到/wp-content/object-cache.php,重命名为object-cache.php.bak或者直接删除即可解决,删除后再访问仪表盘就正常进入了。
上边的解决方案治标不治本,上边执行后虽然进入仪表盘了,但重新启用文件缓存,仍然会进入循环中,这是文件缓存没有被清理掉,只是把中间桥梁给中断了,再次连通桥梁,访问的还是旧数据,就仍然进入循环。
本质解决
- 定位缓存目录
通过分析 WPOPT 插件源码(object-cache-file.php 第 12 行),确定缓存文件实际存储路径为:
/wp-content/wpopt/cache/
- 清空旧缓存文件
通过文件管理器进入/wp-content/wpopt/cache/,删除该目录下所有 cache-*.cache 文件。
- 重建缓存环境
· 这时既可以登录进去后台了,进入 WPOPT 插件设置。
· 先关闭“对象缓存”功能并保存,再重新部署开启。
总结
此类问题本质是缓存数据与代码版本不一致所致。解决关键在于找到缓存物理存储位置并彻底清理,而非仅禁用缓存驱动。对于 WPOPT 插件,其缓存路径为 /wp-content/wpopt/cache/,清空该目录后即可顺利执行数据库更新,后续重新启用缓存功能即可恢复正常。