- 状态
- 已解决
- 报告针对
- WPML Multilingual CMS 3.1.7.2
问题概述
在执行不同类型的操作或在前端显示某些页面时,可能会显示空白页面或以下错误之一:
Fatal error: Maximum function nesting level of '100' reached, aborting!Fatal error: Allowed memory size of xxxxxx bytes exhausted
在某些(罕见且非常特定的)配置中,WPML 代码会陷入无限循环。此循环将持续运行并消耗内存,直到达到分配的最大 PHP 内存限制。如果您的服务器内存限制非常高但仍然被耗尽,您可能遇到了此问题。
请注意,在 99.5% 的情况下,内存溢出表明 PHP 的内存限制过低。此错误仅在极少数情况下触发。大多数关于内存溢出的报告只需增加允许的内存量即可解决。
如果您的服务器内存设置得非常高但仍然耗尽,您可以应用此处建议的补丁。请注意,这需要编辑 WPML 中的一个文件。我们很快将发布一个 Beta 版,以解决此问题及其他问题。
临时解决方法
此修复基于 WPML 字符串翻译的 2.0.9.1 版本。
我们建议等待下一次插件更新,但如果您需要快速修复并且有足够的技能来编辑插件文件,请按照以下说明操作:
- 打开文件 *wp-content/plugins/wpml-string-translation/inc/functions.php*。
- 在第 2940 行,将:
WPML_Config::load_config_run();
替换为:remove_action('update_option', 'update_option_to_translate_string', 5);
WPML_Config::load_config_run();
add_action('update_option', 'update_option_to_translate_string', 5, 3); - 保存