WordPress neuhvaćena greška: Poziv na rješenje nedefinirane funkcije create_function().

Jeste li i vi biliWordPressporuka o grešci"Uncaught Error: Call to undefined function create_function() in SNIPPET:62"Glavobolja?"

Ovaj problem zapravo nije teško riješiti. Hajdemo sada detaljno o tome zašto se ovaj problem javlja i kako ga riješiti jednostavnim i učinkovitim kodom.

Zašto dobijam greške create_function?

Prvo malo osnovnog znanja. U PHP 7.2,create_function()Zastarjela je, au PHP 8.0 ova funkcija je direktno uklonjena. Drugim riječima, ako je vaš server nadograđen na PHP 7.2 ili noviji i još uvijek koristi stari kod, ovaj problem će se pojaviti.

Ali srž problema je:create_functionTo je proizvod starog doba. Problem s njim nije samo što više nije podržan, već uvodi i loše performanse i potencijalne sigurnosne rizike. Novo rješenje je korištenjeanonimna funkcija(Anonimne funkcije).

Izmijenite kod: Riješite grešku create_function

WordPress neuhvaćena greška: Poziv na rješenje nedefinirane funkcije create_function().

Sada, da vidimo kako zamijeniti stari kod. Slijedi plan modifikacije specifičnog koda:

originalni kod

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

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

Modificirani kod

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

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

Objašnjenje koda :

  • function() { return 1; } je anonimna funkcija koja ne zahtijeva parametre i vraća 1.
  • get_bloginfo('url') To je funkcija koja vraća adresu početne stranice web stranice. Također je obavijamo anonimnom funkcijom.

Bolji pristup: oprezno tretirajte onemogućavanje sličica

Potpuno onemogućavanje WordPress sličica ponekad nije najbolja opcija. Ako određene teme ili dodaci zahtijevaju slike određene veličine, njihovo potpuno onemogućavanje može uzrokovati neočekivane probleme.

Evo fleksibilnijeg rješenja: selektivno onemogućite nepotrebne veličine slike putem filtera.

Primjer koda

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

Ovaj pristup ne samo da rješava problem, već i održava kompatibilnost s određenim karakteristikama.

Izmijenite kod

Dodajte izmijenjeni kod na jednu od sljedećih lokacija:

  1. aktuelne teme functions.php dokument.
  2. Dodatak prilagođene funkcije (preporučeni način da se izbjegne pokrivenost koda ažuriranjima teme).

Šta da radim ako se greška i dalje javlja nakon izmjene koda?

Ako je dodatak fluent-snippet-storage omogućen i još uvijek postoje greške nakon izmjene, možda je ufluent-snippet-storage/index.phpU njemu se nalazi keš memorija, a kod greške error_files treba izbrisati.

okreni sewp-content/fluent-snippet-storage/index.phpDatoteka, skrolujte do kraja i pronađite kod sličan sledećem:

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

Kod za brisanje ovih zapisa o greškama:

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

Bonus savjet: Osigurajte kompatibilnost koda

Prije izmjene koda, preporučuje se da napravite sigurnosnu kopiju datoteka web stranice i baze podataka. Možete koristiti dodatke (kao što je UpdraftPlus) da brzo završite sigurnosne kopije i izbjegnete da budete zatečeni kada nešto krene po zlu.

Istovremeno, ako niste upoznati sa PHP-om, preporučuje se da pokušate da modifikujete kod u testnom okruženju radije nego da direktno upravljate proizvodnim okruženjem.

Optimizacija koda je stalna borba

Ovaj naizgled jednostavan problem je zapravo čest u razvoju web stranica: kompatibilnost između starog koda i novih okruženja . Bilo da se radi o nadogradnji PHP verzije ili poboljšanju WordPress funkcija, cilj je učiniti web stranice efikasnijim i sigurnijim.

Za programere je bitno pravovremeno ažurirati kod i naučiti nove tehnologije. Anonimne funkcije ne samo da čine kod konciznijim, već i poboljšavaju performanse i smanjuju potencijalne sigurnosne rizike. Svaka optimizacija vodi Vašu web stranicu korak dalje.

总结

  1. create_function() Više nije podržan u PHP 7.2 i novijim verzijama i preporučuje se korištenje anonimnih funkcija umjesto toga.
  2. Nakon izmjene koda, vaša će web stranica biti efikasnija i sigurnija.
  3. Za bolju kompatibilnost s dodacima i temama, selektivno onemogućavanje veličina slika može biti bolje rješenje.
  4. Optimizacija koda nije samo rješavanje problema, već i korak ka poboljšanju kvalitete vaše web stranice.

Ako ste naišli na slične probleme, možda biste željeli isprobati rješenja u ovom članku.

Komentari

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

Dođite na vrh