Neulovljena napaka WordPress: klic nedefinirane funkcije create_function() rešitev

Ste tudi vi biliWordPresssporočilo o napaki"Uncaught Error: Call to undefined function create_function() in SNIPPET:62"Glede na glavobol?"

Tega problema pravzaprav ni težko rešiti. Pogovorimo se podrobneje o tem, zakaj se ta problem pojavi in ​​kako ga rešiti s preprosto in učinkovito kodo.

Zakaj dobivam napake create_function?

Najprej malo osnovnega znanja. V PHP 7.2,create_function()Zastarela je in v PHP 8.0 je bila ta funkcija neposredno odstranjena. Z drugimi besedami, če je bil vaš strežnik nadgrajen na PHP 7.2 ali novejši in še vedno uporablja staro kodo, se bo pojavila ta težava.

Toda jedro problema je:create_functionJe produkt stare dobe. Težava z njim ni le v tem, da ni več podprt, ampak prinaša tudi slabo delovanje in morebitna varnostna tveganja. Nova rešitev je uporabaanonimna funkcija(Anonimne funkcije).

Spremenite kodo: Odpravite napako create_function

Neulovljena napaka WordPress: klic nedefinirane funkcije create_function() rešitev

Zdaj pa poglejmo, kako zamenjati staro kodo. Sledi poseben načrt za spreminjanje kode:

originalna koda

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

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

Spremenjena koda

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

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

Razlaga kode:

  • function() { return 1; } je anonimna funkcija, ki ne zahteva parametrov in vrne 1.
  • get_bloginfo('url') To je funkcija, ki vrne tudi naslov domače strani spletnega mesta z anonimno funkcijo.

Boljši pristop: onemogočanje sličic obravnavajte previdno

Popolna onemogočanje sličic WordPress včasih ni najboljša možnost. Če nekatere teme ali vtičniki zahtevajo slike določene velikosti, lahko njihovo popolno onemogočanje povzroči nepričakovane težave.

Tukaj je bolj prilagodljiva rešitev: selektivno onemogočite nepotrebne velikosti slik prek filtrov.

Vzorčna koda

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

Ta pristop ne le reši težave, ampak tudi ohranja združljivost z določenimi funkcijami.

Spremeni kodo

Dodajte spremenjeno kodo na eno od naslednjih mest:

  1. trenutne teme functions.php mapa.
  2. Funkcijski vtičnik po meri (priporočena metoda za preprečevanje pokritosti kode s posodobitvami tem).

Kaj naj storim, če se napaka po spremembi kode še vedno pojavlja?

Če je vtičnik fluent-nippet-storage omogočen in po spremembi še vedno prihaja do napak, je morda vfluent-snippet-storage/index.phpV njem je predpomnilnik in kodo napake error_files je treba izbrisati.

prikazati sewp-content/fluent-snippet-storage/index.phpDatoteke, se pomaknite navzdol do konca in poiščite kodo, podobno naslednji:

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

Koda za brisanje teh zapisov napak:

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

Dodatni nasvet: Zagotovite združljivost kode

Pred spreminjanjem kode je priporočljivo varnostno kopirati datoteke in bazo podatkov spletnega mesta. Uporabite lahko vtičnike (kot je UpdraftPlus), da hitro dokončate varnostno kopiranje in preprečite, da bi vas ujeli nepripravljeni, ko gre kaj narobe.

Hkrati, če niste seznanjeni s PHP, je priporočljivo, da poskusite spremeniti kodo v testnem okolju, namesto da neposredno upravljate produkcijsko okolje.

Optimizacija kode je stalna bitka

To vprašanje se zdi preprosto, vendar je v resnici pogost problem, s katerim se je treba soočiti pri razvoju spletnega mesta:Združljivost stare kode z novim okoljem. Ne glede na to, ali gre za nadgradnjo različice PHP ali izboljšanje funkcij WordPressa, so vsi zasnovani tako, da spletno mesto deluje učinkoviteje in varneje.

Za razvijalce je bistvenega pomena pravočasno posodabljanje kode in učenje novih tehnologij. Anonimne funkcije ne le naredijo kodo bolj jedrnato, ampak tudi izboljšajo zmogljivost in zmanjšajo morebitna varnostna tveganja. Vsaka optimizacija popelje vašo spletno stran še korak dlje.

总结

  1. create_function() V PHP 7.2 in novejših ni več podprt, zato je priporočljiva uporaba anonimnih funkcij.
  2. Po spremembi kode bo vaše spletno mesto bolj učinkovito in varno.
  3. Za boljšo združljivost z vtičniki in temami je morda boljša rešitev selektivno onemogočanje velikosti slik.
  4. Optimizacija kode ni le odpravljanje težav, ampak tudi korak k izboljšanju kakovosti vašega spletnega mesta.

Če ste naleteli na podobne težave, boste morda želeli preizkusiti rešitve v tem članku.

发表 评论

您的邮箱地址不会被公开。 必填 项 已 用 * Oznaka

Imenik člankov
Pomaknite se na vrh