Direktori Artikel
Apakah kamu juga pernahWordPresspesan kesalahan"Uncaught Error: Call to undefined function create_function() in SNIPPET:62"Karena sakit kepala?"
Masalah ini sebenarnya tidak sulit untuk dipecahkan. Sekarang mari kita bahas secara detail mengapa masalah ini terjadi dan bagaimana mengatasinya dengan kode yang sederhana dan efektif.
Mengapa saya mendapatkan kesalahan create_function?
Sedikit latar belakang pengetahuan dulu. Dalam PHP 7.2,create_function()Sudah tidak digunakan lagi, dan di PHP 8.0, fungsi ini langsung dihapus. Dengan kata lain, jika server Anda sudah diupgrade ke PHP 7.2 atau lebih tinggi dan masih menggunakan kode lama, maka masalah ini akan terjadi.
Namun inti permasalahannya adalah:create_functionItu adalah produk zaman dulu. Masalahnya bukan hanya karena tidak lagi didukung, namun juga menimbulkan kinerja buruk dan potensi risiko keamanan. Solusi baru adalah dengan menggunakanfungsi anonim(Fungsi Anonim).
Ubah kode: Selesaikan kesalahan create_function

Sekarang mari kita lihat cara mengganti kode lama. Berikut ini adalah rencana modifikasi kode spesifik:
kode asli
//彻底禁止WordPress缩略图
add_filter( 'add_image_size', create_function( '', 'return 1;' ) );
//自定义登录页面的LOGO链接为首页链接
add_filter('login_headerurl', create_function(false,"return get_bloginfo('url');"));
Kode yang dimodifikasi
// 彻底禁止 WordPress 缩略图
add_filter( 'add_image_size', function() { return 1; } );
// 自定义登录页面的 LOGO 链接为首页链接
add_filter( 'login_headerurl', function() { return get_bloginfo('url'); } );
Penjelasan kode:
function() { return 1; }adalah fungsi anonim yang tidak memerlukan parameter dan pengembalian1.get_bloginfo('url')Ini adalah fungsi yang mengembalikan alamat beranda situs web. Kami juga membungkusnya dengan fungsi anonim.
Pendekatan yang lebih baik: perlakukan penonaktifan thumbnail dengan hati-hati
Menonaktifkan sepenuhnya thumbnail WordPress terkadang bukan pilihan terbaik. Jika tema atau plugin tertentu memerlukan gambar dengan ukuran tertentu, menonaktifkannya sepenuhnya dapat menyebabkan masalah yang tidak terduga.
Berikut solusi yang lebih fleksibel: nonaktifkan ukuran gambar yang tidak diperlukan secara selektif melalui filter.
Kode sampel
add_filter( 'intermediate_image_sizes_advanced', function( $sizes ) {
unset( $sizes['thumbnail'] ); // 禁用缩略图
unset( $sizes['medium'] ); // 禁用中等大小
unset( $sizes['large'] ); // 禁用大图
return $sizes;
} );
Pendekatan ini tidak hanya memecahkan masalah, tetapi juga menjaga kompatibilitas dengan fitur-fitur tertentu.
Ubah kode
Tambahkan kode yang dimodifikasi ke salah satu lokasi berikut:
- topik saat ini
functions.phpmengajukan. - Plug-in fungsi khusus (metode yang disarankan untuk menghindari cakupan kode oleh pembaruan tema).
Apa yang harus saya lakukan jika kesalahan masih terjadi setelah mengubah kode?
Jika plugin penyimpanan cuplikan lancar diaktifkan dan masih ada kesalahan setelah modifikasi, mungkin kesalahan tersebut terjadi difluent-snippet-storage/index.phpAda cache di dalamnya, dan kode kesalahan error_files perlu dihapus.
naikkanwp-content/fluent-snippet-storage/index.phpFile, gulir ke bawah sampai akhir, dan temukan kode seperti berikut:
'error_files' => array ( '1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62', ), );
Kode untuk menghapus catatan kesalahan ini:
'1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62',
Tip bonus: Pastikan kompatibilitas kode
Sebelum memodifikasi kode, disarankan untuk membuat cadangan file situs web dan database. Anda dapat menggunakan plug-in (seperti UpdraftPlus) untuk menyelesaikan pencadangan dengan cepat dan menghindari lengah ketika terjadi kesalahan.
Pada saat yang sama, jika Anda tidak terbiasa dengan PHP, disarankan untuk mencoba mengubah kode di lingkungan pengujian daripada langsung mengoperasikan lingkungan produksi.
Mengoptimalkan kode adalah perjuangan yang terus-menerus
Pertanyaan ini terlihat sederhana, namun sebenarnya merupakan masalah umum yang perlu dihadapi dalam pengembangan website:Kompatibilitas kode lama dengan lingkungan baru. Baik itu upgrade versi PHP atau peningkatan fungsi WordPress, semuanya dirancang untuk membuat website berjalan lebih efisien dan aman.
Bagi pengembang, penting untuk memperbarui kode secara tepat waktu dan mempelajari teknologi baru. Fungsi anonim tidak hanya membuat kode lebih ringkas, namun juga meningkatkan kinerja dan mengurangi potensi risiko keamanan. Setiap pengoptimalan membawa situs web Anda selangkah lebih maju.
总结
create_function()Ini tidak lagi didukung di PHP 7.2 dan yang lebih baru, dan disarankan untuk menggunakan fungsi anonim.- Setelah memodifikasi kode, situs web Anda akan lebih efisien dan aman.
- Untuk kompatibilitas yang lebih baik dengan plugin dan tema, menonaktifkan ukuran gambar secara selektif mungkin merupakan solusi yang lebih baik.
- Mengoptimalkan kode tidak hanya tentang memperbaiki masalah, tetapi juga merupakan langkah menuju peningkatan kualitas situs web Anda.
Jika Anda mengalami masalah serupa, Anda mungkin ingin mencoba solusi dalam artikel ini.
Harapan Chen Weiliang Blog ( https://www.chenweiliang.com/ ) dibagikan oleh "Kesalahan Tak Tertangkap WordPress: Panggilan ke fungsi yang tidak terdefinisi, create_function() Solusi" mungkin dapat membantu Anda.
Selamat datang untuk membagikan tautan artikel ini:https://www.chenweiliang.com/cwl-32407.html
