WordPress站点因WPML字符串翻译插件报错无法运行求助
解决WPML String Translation插件导致的WordPress致命错误
错误原因
这个致命错误是因为WPML String Translation插件调用了WP_Textdomain_Registry::reset()方法,但当前WordPress核心或WPML组件版本中不存在该方法,本质是插件与WP核心/其他WPML组件版本不兼容,或插件文件损坏。
解决步骤
- 临时恢复站点访问:保持
wpml-string-translation文件夹重命名为wpml-string-translation.disabled的状态,登录WordPress后台。 - 统一WPML组件版本:进入后台WPML管理页面,检查所有WPML相关插件(如WPML Multilingual CMS、WPML String Translation)的版本,确保所有组件为同一版本系列,若版本不一致,统一更新到官方兼容的最新版本(操作前务必备份站点)。
- 手动重装插件:若后台无法直接更新,从你的WPML账户下载对应兼容版本的WPML String Translation安装包,通过FTP/主机文件管理器删除
wpml-string-translation.disabled文件夹,上传新下载的插件文件夹并命名为wpml-string-translation。 - 检查WP核心版本:确保WordPress核心为最新稳定版,或WPML官方标注兼容的版本。若WP核心版本过低,缺少
WP_Textdomain_Registry::reset()方法,需更新WP核心(备份后操作)。 - 紧急代码修复(临时方案):若暂时无法更新,修改出错文件
/wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LanguageSwitch.php第139行:
将$this->textdomainRegistry->reset();替换为:
修改后将插件文件夹改回原名if ( method_exists( $this->textdomainRegistry, 'reset' ) ) { $this->textdomainRegistry->reset(); }wpml-string-translation,站点即可恢复运行,之后需尽快完成版本兼容更新。
内容的提问来源于stack exchange,提问作者Eloy Ruiz
相关产品推荐
相关产品推荐

