- สถานะ
- แก้ไขแล้ว
- รายงานสำหรับ
- 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); - บันทึก