WPML
状态
已解决
报告针对
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);

  • 保存

所有已知问题 →