ข้อผิดพลาด WordPress Uncaught: การเรียกใช้โซลูชัน create_function() ของฟังก์ชันที่ไม่ได้กำหนด

คุณเคยหรือยังWordPressข้อความแสดงข้อผิดพลาด"Uncaught Error: Call to undefined function create_function() in SNIPPET:62“หายปวดหัวหรือยัง”

ปัญหานี้แก้ไขได้ไม่ยากจริงๆ เรามาพูดคุยโดยละเอียดเกี่ยวกับสาเหตุที่ปัญหานี้เกิดขึ้นและวิธีแก้ไขด้วยโค้ดที่ง่ายและมีประสิทธิภาพ

เหตุใดฉันจึงได้รับข้อผิดพลาด create_function

ความรู้พื้นฐานเล็กน้อยก่อน ใน PHP 7.2create_function()เลิกใช้แล้ว และใน PHP 8.0 ฟังก์ชันนี้ถูกลบออกโดยตรง กล่าวอีกนัยหนึ่ง หากเซิร์ฟเวอร์ของคุณอัปเกรดเป็น PHP 7.2 ขึ้นไปแล้ว และยังคงใช้โค้ดเก่าอยู่ ปัญหานี้จะเกิดขึ้น

แต่แก่นแท้ของปัญหาคือ:create_functionเป็นผลิตภัณฑ์จากยุคเก่า ปัญหาไม่เพียงแต่ไม่รองรับอีกต่อไป แต่ยังทำให้เกิดประสิทธิภาพที่ไม่ดีและความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้นอีกด้วย วิธีแก้ไขใหม่คือการใช้ฟังก์ชั่นที่ไม่ระบุชื่อ(ฟังก์ชันที่ไม่ระบุชื่อ)

แก้ไขโค้ด: แก้ไขข้อผิดพลาด create_function

ข้อผิดพลาด WordPress Uncaught: การเรียกใช้โซลูชัน create_function() ของฟังก์ชันที่ไม่ได้กำหนด

ตอนนี้เรามาดูวิธีการแทนที่โค้ดเก่ากัน ต่อไปนี้คือแผนการปรับเปลี่ยนโค้ดเฉพาะ:

รหัสต้นฉบับ

//彻底禁止WordPress缩略图
add_filter( 'add_image_size', create_function( '', 'return 1;' ) );

//自定义登录页面的LOGO链接为首页链接
add_filter('login_headerurl', create_function(false,"return get_bloginfo('url');"));

รหัสที่แก้ไข

// 彻底禁止 WordPress 缩略图
add_filter( 'add_image_size', function() { return 1; } );

// 自定义登录页面的 LOGO 链接为首页链接
add_filter( 'login_headerurl', function() { return get_bloginfo('url'); } );

คำอธิบายรหัส:

  • function() { return 1; } เป็นฟังก์ชันที่ไม่ระบุชื่อที่ไม่ต้องใช้พารามิเตอร์และส่งคืน 1.
  • get_bloginfo('url') เป็นฟังก์ชันที่ส่งคืนที่อยู่หน้าแรกของเว็บไซต์ เรายังปิดท้ายด้วยฟังก์ชันที่ไม่ระบุชื่ออีกด้วย

แนวทางที่ดีกว่า: จัดการการปิดใช้ภาพขนาดย่อด้วยความระมัดระวัง

การปิดใช้งานภาพขนาดย่อของ WordPress อย่างสมบูรณ์อาจไม่ใช่ตัวเลือกที่ดีที่สุด หากธีมหรือปลั๊กอินบางตัวต้องใช้รูปภาพในขนาดเฉพาะ การปิดใช้งานทั้งหมดอาจทำให้เกิดปัญหาที่ไม่คาดคิด

ต่อไปนี้เป็นวิธีแก้ปัญหาที่ยืดหยุ่นมากขึ้น: เลือกปิดการใช้งานขนาดภาพที่ไม่จำเป็นผ่านฟิลเตอร์

รหัสตัวอย่าง

add_filter( 'intermediate_image_sizes_advanced', function( $sizes ) {
    unset( $sizes['thumbnail'] ); // 禁用缩略图
    unset( $sizes['medium'] );    // 禁用中等大小
    unset( $sizes['large'] );     // 禁用大图
    return $sizes;
} );

วิธีการนี้ไม่เพียงแต่แก้ปัญหาเท่านั้น แต่ยังรักษาความเข้ากันได้กับคุณสมบัติบางอย่างอีกด้วย

แก้ไขโค้ด

เพิ่มรหัสที่ปรับเปลี่ยนไปยังตำแหน่งใดตำแหน่งหนึ่งต่อไปนี้:

  1. ของหัวข้อปัจจุบัน functions.php ไฟล์.
  2. ปลั๊กอินฟังก์ชันแบบกำหนดเอง (วิธีที่แนะนำเพื่อหลีกเลี่ยงการครอบคลุมโค้ดโดยการอัพเดตธีม)

ฉันควรทำอย่างไรหากข้อผิดพลาดยังคงเกิดขึ้นหลังจากแก้ไขโค้ดแล้ว?

หากเปิดใช้ปลั๊กอินพื้นที่เก็บข้อมูล Fluent-snippet-storage แล้วและยังมีข้อผิดพลาดหลังการแก้ไข ปลั๊กอินดังกล่าวอาจอยู่ในfluent-snippet-storage/index.phpมีแคชอยู่ในนั้นและจำเป็นต้องลบรหัสข้อผิดพลาดของ error_files

เปิดขึ้นwp-content/fluent-snippet-storage/index.phpไฟล์ เลื่อนลงไปจนสุดแล้วค้นหาโค้ดที่คล้ายกับข้อความต่อไปนี้:

'error_files' => 
array (
'1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62',
),
);

รหัสสำหรับลบบันทึกข้อผิดพลาดเหล่านี้:

'1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62',

เคล็ดลับโบนัส: ตรวจสอบความเข้ากันได้ของโค้ด

ก่อนที่จะแก้ไขโค้ด แนะนำให้สำรองไฟล์เว็บไซต์และฐานข้อมูลก่อน คุณสามารถใช้ปลั๊กอิน (เช่น UpdraftPlus) เพื่อทำการสำรองข้อมูลอย่างรวดเร็วและหลีกเลี่ยงการถูกไม่ทันระวังเมื่อมีสิ่งผิดปกติเกิดขึ้น

ในเวลาเดียวกัน หากคุณไม่คุ้นเคยกับ PHP ขอแนะนำให้ลองแก้ไขโค้ดในสภาพแวดล้อมการทดสอบ แทนที่จะใช้งานสภาพแวดล้อมการใช้งานจริงโดยตรง

การเพิ่มประสิทธิภาพโค้ดคือการต่อสู้อย่างต่อเนื่อง

คำถามนี้ดูเหมือนง่าย แต่จริงๆ แล้วเป็นปัญหาทั่วไปที่ต้องเผชิญในการพัฒนาเว็บไซต์:ความเข้ากันได้ของโค้ดเก่ากับสภาพแวดล้อมใหม่- ไม่ว่าจะเป็นการอัปเกรดเวอร์ชัน PHP หรือการปรับปรุงฟังก์ชัน WordPress ทั้งหมดนี้ได้รับการออกแบบมาเพื่อให้เว็บไซต์ทำงานได้อย่างมีประสิทธิภาพและปลอดภัยยิ่งขึ้น

สำหรับนักพัฒนา การอัปเดตโค้ดให้ทันท่วงทีและเรียนรู้เทคโนโลยีใหม่ๆ ถือเป็นสิ่งสำคัญ ฟังก์ชันที่ไม่เปิดเผยตัวตนไม่เพียงแต่ทำให้โค้ดมีความกระชับมากขึ้น แต่ยังปรับปรุงประสิทธิภาพและลดความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้นอีกด้วย การเพิ่มประสิทธิภาพทุกครั้งจะทำให้เว็บไซต์ของคุณก้าวไปอีกขั้นหนึ่ง

总结

  1. create_function() ไม่รองรับ PHP 7.2 ขึ้นไปอีกต่อไป และขอแนะนำให้ใช้ฟังก์ชันที่ไม่ระบุชื่อแทน
  2. หลังจากแก้ไขโค้ดแล้ว เว็บไซต์ของคุณจะมีประสิทธิภาพและปลอดภัยมากขึ้น
  3. เพื่อให้เข้ากันได้กับปลั๊กอินและธีมได้ดีขึ้น การเลือกขนาดรูปภาพที่ปิดใช้งานอาจเป็นวิธีแก้ปัญหาที่ดีกว่า
  4. การเพิ่มประสิทธิภาพโค้ดไม่เพียงแต่เกี่ยวกับการแก้ไขปัญหาเท่านั้น แต่ยังเป็นขั้นตอนในการปรับปรุงคุณภาพเว็บไซต์ของคุณอีกด้วย

หากคุณพบปัญหาที่คล้ายกัน คุณอาจต้องการลองวิธีแก้ปัญหาในบทความนี้

หวัง Chen Weiliang บล็อก ( https://www.chenweiliang.com/ ) แบ่งปันโดย "WordPress Uncaught Error: การเรียกไปยังฟังก์ชันที่ไม่ได้กำหนด create_function() Solution" อาจเป็นประโยชน์สำหรับคุณ

ยินดีต้อนรับสู่การแบ่งปันลิงค์ของบทความนี้:https://www.chenweiliang.com/cwl-32407.html

หากต้องการปลดล็อคเคล็ดลับที่ซ่อนอยู่เพิ่มเติม ยินดีต้อนรับเข้าร่วมช่อง Telegram ของเรา!

แชร์และกดไลค์ถ้าคุณชอบ! การแชร์และการถูกใจของคุณคือแรงบันดาลใจอย่างต่อเนื่องของเรา!

 

发表评论

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ 必填项已用 * 标注

ไดเรกทอรีบทความ
เลื่อนไปที่ด้านบน