Artiklite kataloog
Kas olete ka käinudWordPressveateade"Uncaught Error: Call to undefined function create_function() in SNIPPET:62"Pea valutab?"
Seda probleemi pole tegelikult keeruline lahendada. Räägime nüüd üksikasjalikult, miks see probleem ilmneb ja kuidas seda lihtsa ja tõhusa koodiga lahendada.
Miks ma saan veateate create_function?
Esmalt natuke taustateadmisi. PHP 7.2-screate_function()See on aegunud ja PHP 8.0-s eemaldati see funktsioon otse. Teisisõnu, kui teie server on uuendatud versioonile PHP 7.2 või uuemale ja kasutab endiselt vana koodi, ilmneb see probleem.
Kuid probleemi tuum on:create_functionSee on vana ajastu toode. Selle probleemiks pole mitte ainult see, et seda enam ei toetata, vaid see toob kaasa ka kehva jõudluse ja võimalikud turvariskid. Uus lahendus on kasutadaanonüümne funktsioon(Anonüümsed funktsioonid).
Muutke koodi: Lahendage Create_function tõrge

Nüüd vaatame, kuidas vana koodi asendada. Järgmine on konkreetne koodi muutmise plaan:
originaalkood
//彻底禁止WordPress缩略图
add_filter( 'add_image_size', create_function( '', 'return 1;' ) );
//自定义登录页面的LOGO链接为首页链接
add_filter('login_headerurl', create_function(false,"return get_bloginfo('url');"));
Muudetud kood
// 彻底禁止 WordPress 缩略图
add_filter( 'add_image_size', function() { return 1; } );
// 自定义登录页面的 LOGO 链接为首页链接
add_filter( 'login_headerurl', function() { return get_bloginfo('url'); } );
Koodi selgitus:
function() { return 1; }on anonüümne funktsioon, mis ei nõua parameetreid ja tagastab1.get_bloginfo('url')See on funktsioon, mis tagastab veebisaidi avalehe aadressi. Me ümbritseme selle ka anonüümse funktsiooniga.
Parem lähenemine: suhtuge pisipiltide keelamisse ettevaatusega
WordPressi pisipiltide täielik keelamine pole mõnikord parim valik. Kui teatud teemad või pistikprogrammid nõuavad kindla suurusega pilte, võib nende täielik keelamine põhjustada ootamatuid probleeme.
Siin on paindlikum lahendus: valikuliselt keelake mittevajalikud pildisuurused filtrite kaudu.
Näidiskood
add_filter( 'intermediate_image_sizes_advanced', function( $sizes ) {
unset( $sizes['thumbnail'] ); // 禁用缩略图
unset( $sizes['medium'] ); // 禁用中等大小
unset( $sizes['large'] ); // 禁用大图
return $sizes;
} );
See lähenemisviis mitte ainult ei lahenda probleemi, vaid säilitab ka ühilduvuse teatud funktsioonidega.
Muuda koodi
Lisage muudetud kood ühte järgmistest asukohtadest:
- praegusest teemast
functions.phpdokument. - Kohandatud funktsioonide pistikprogramm (soovitatav meetod, et vältida koodi katmist teemavärskendustega).
Mida peaksin tegema, kui viga ilmneb ka pärast koodi muutmist?
Kui fluent-snippet-storage pistikprogramm on lubatud ja pärast muutmist esineb endiselt tõrkeid, võib see ollafluent-snippet-storage/index.phpSelles on vahemälu ja error_files veakood tuleb kustutada.
ilmumawp-content/fluent-snippet-storage/index.phpFail, kerige alla ja leidke järgmisega sarnane kood:
'error_files' => array ( '1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62', ), );
Nende veakirjete kustutamise kood:
'1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62',
Boonusnõuanne: tagage koodi ühilduvus
Enne koodi muutmist on soovitatav varundada veebisaidi failid ja andmebaas. Saate kasutada pistikprogrammi (nt UpdraftPlus), et varundamine kiiresti lõpule viia ja vältida ootamatusi, kui midagi läheb valesti.
Samal ajal, kui te ei ole PHP-ga tuttav, on soovitatav proovida koodi muuta testkeskkonnas, mitte otse tootmiskeskkonda juhtida.
Koodi optimeerimine on pidev võitlus
See küsimus tundub lihtne, kuid tegelikult on see tavaline probleem, millega tuleb veebisaidi arendamisel silmitsi seista:Vana koodi ühilduvus uue keskkonnaga. Olgu selleks PHP versiooni uuendamine või WordPressi funktsioonide täiustamine – need kõik on mõeldud veebisaidi tõhusamaks ja turvalisemaks töötamiseks.
Arendajate jaoks on oluline koodi õigeaegselt värskendada ja uusi tehnoloogiaid õppida. Anonüümsed funktsioonid mitte ainult ei muuda koodi kokkuvõtlikumaks, vaid parandavad ka jõudlust ja vähendavad võimalikke turvariske. Iga optimeerimine viib teie veebisaidi ühe sammu edasi.
总结
create_function()PHP 7.2 ja uuemad versioonid seda enam ei toeta ning selle asemel on soovitatav kasutada anonüümseid funktsioone.- Pärast koodi muutmist on teie veebisait tõhusam ja turvalisem.
- Parema ühilduvuse tagamiseks pistikprogrammide ja teemadega võib parem lahendus olla pildisuuruste valikuline keelamine.
- Koodi optimeerimine ei tähenda ainult probleemide lahendamist, vaid ka samm teie veebisaidi kvaliteedi parandamise suunas.
Kui teil on esinenud sarnaseid probleeme, võite proovida selles artiklis toodud lahendusi.
Hope Chen Weiliangi ajaveeb ( https://www.chenweiliang.com/ ).
Tere tulemast selle artikli linki jagama:https://www.chenweiliang.com/cwl-32407.html
