- 상태
- 해결됨
- 보고된 제품
- 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의 파일을 편집해야 한다는 점에 유의하세요. 이 문제와 기타 문제를 해결한 베타 버전을 곧 릴리스할 예정입니다.
임시 해결 방법
이 수정 사항은 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); - 저장하세요