升级WordPress后旧插件失效,如何启用WP_USE_EXT_MYSQL兼容?
解决WordPress 4.9+升级后旧插件mysqli兼容问题
Been there, done that——跨大版本升级WordPress最容易踩这种底层驱动变化的坑,尤其是从3.7.x直接跳到4.9.x,数据库驱动从可选mysql切换到强制mysqli,老插件没跟上就直接罢工了。下面给你一步步讲怎么解决:
一、临时启用旧mysql扩展(WP_USE_EXT_MYSQL)的具体操作
这是最快让插件恢复工作的临时方案,操作步骤很简单:
备份并编辑wp-config.php
- 登录你的服务器(FTP/SFTP或主机控制面板的文件管理器),找到站点根目录下的
wp-config.php文件。 - 先下载一份本地备份——万一操作失误,这就是救命稻草。
- 登录你的服务器(FTP/SFTP或主机控制面板的文件管理器),找到站点根目录下的
添加常量定义
- 打开
wp-config.php,找到数据库配置段(就是包含DB_NAME、DB_USER这些定义的部分),在这段代码的上方添加一行:define( 'WP_USE_EXT_MYSQL', true ); - 举个例子,添加后的代码大概是这样:
define( 'WP_USE_EXT_MYSQL', true ); // ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define( 'DB_NAME', 'database_name_here' ); /** MySQL database username */ define( 'DB_USER', 'username_here' ); /** MySQL database password */ define( 'DB_PASSWORD', 'password_here' ); /** MySQL hostname */ define( 'DB_HOST', 'localhost' );
- 打开
验证效果
- 保存文件并上传回服务器(在线编辑的话直接保存),然后刷新站点前台和后台,检查那个旧插件是否恢复正常运行。
二、长期解决方案(别一直依赖临时方案)
要敲黑板提醒:WP_USE_EXT_MYSQL这个常量在WordPress 5.5之后就被正式废弃了,后续版本会彻底移除对旧mysql扩展的支持,所以临时方案只是救急,你得尽快处理:
- 找插件更新:去插件的官方发布页(或者你当初获取它的渠道)看看有没有适配WordPress 4.9+的版本,开发者大概率已经修复了mysqli兼容问题。
- 替换插件:如果这个插件已经停止维护(很多老插件会这样),赶紧找功能类似、支持新版本WP的替代插件——这是最省心也最稳妥的方式。
- 手动修复代码:如果你懂点PHP,可以自己改插件代码:把所有旧的
mysql_*函数(比如mysql_query()、mysql_connect())替换成mysqli_*系列函数(注意参数顺序可能有变化),或者更推荐用WordPress自带的$wpdb类来做数据库操作,这是WP官方推荐的方式,兼容性和安全性都更好。
额外提醒
- 这次的教训也告诉我们:尽量不要拖太久才升级WordPress,小版本迭代的兼容性问题会少很多,而且安全补丁也能及时跟上。
- 下次升级前,一定要在和生产环境配置一致的测试环境里先跑一遍,插件、主题的兼容性问题提前发现提前解决,就不会上线翻车了。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

