WordPressin havaitsematon virhe: Kutsu määrittelemättömään funktion create_function() ratkaisuun

Oletko sinäkin ollutWordPressvirheilmoitus"Uncaught Error: Call to undefined function create_function() in SNIPPET:62"Onko päänsärky?"

Tätä ongelmaa ei itse asiassa ole vaikea ratkaista. Puhutaanpa nyt yksityiskohtaisesti siitä, miksi tämä ongelma ilmenee ja kuinka se ratkaistaan ​​yksinkertaisella ja tehokkaalla koodilla.

Miksi saan create_function -virheitä?

Ensin vähän taustatietoa. PHP 7.2:ssacreate_function()Se on vanhentunut, ja PHP 8.0:ssa tämä toiminto poistettiin suoraan. Toisin sanoen, jos palvelimesi on päivitetty PHP 7.2:een tai uudempaan ja käyttää edelleen vanhaa koodia, tämä ongelma ilmenee.

Mutta ongelman ydin on:create_functionSe on vanhan ajan tuote. Sen ongelmana ei ole vain se, että sitä ei enää tueta, vaan se aiheuttaa myös huonon suorituskyvyn ja mahdollisia tietoturvariskejä. Uusi ratkaisu on käyttääanonyymi toiminto(Anonyymit toiminnot).

Muokkaa koodia: Ratkaise Create_function -virhe

WordPressin havaitsematon virhe: Kutsu määrittelemättömään funktion create_function() ratkaisuun

Katsotaan nyt, kuinka vanha koodi korvataan. Seuraava on erityinen koodin muutossuunnitelma:

alkuperäinen koodi

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

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

Muokattu koodi

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

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

Koodin selitys:

  • function() { return 1; } on anonyymi funktio, joka ei vaadi parametreja ja palauttaa 1.
  • get_bloginfo('url') Se on toiminto, joka palauttaa verkkosivuston kotisivun osoitteen. Käärimme sen myös anonyymitoiminnolla.

Parempi lähestymistapa: Suhtaudu pikkukuvien poistamiseen varoen

WordPressin pikkukuvien poistaminen kokonaan käytöstä ei joskus ole paras vaihtoehto. Jos tietyt teemat tai lisäosat vaativat tietynkokoisia kuvia, niiden poistaminen kokonaan käytöstä voi aiheuttaa odottamattomia ongelmia.

Tässä on joustavampi ratkaisu: poista tarpeettomat kuvakoot valikoivasti suodattimien avulla.

Esimerkkikoodi

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

Tämä lähestymistapa ei ainoastaan ​​ratkaise ongelmaa, vaan myös ylläpitää yhteensopivuutta tiettyjen ominaisuuksien kanssa.

Muokkaa koodia

Lisää muokattu koodi johonkin seuraavista paikoista:

  1. ajankohtaisesta aiheesta functions.php tiedosto.
  2. Räätälöityjen toimintojen laajennus (suositeltu tapa välttää koodin peitto teemapäivityksillä).

Mitä minun pitäisi tehdä, jos virhe ilmenee edelleen koodin muuttamisen jälkeen?

Jos fluent-snippet-storage-laajennus on käytössä ja virheitä on edelleen muokkauksen jälkeen, se voi ollafluent-snippet-storage/index.phpSiinä on välimuisti, ja error_files-virhekoodi on poistettava.

ilmestyäwp-content/fluent-snippet-storage/index.phpTiedosto, vieritä alas loppuun ja etsi seuraavanlainen koodi:

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

Koodi näiden virhetietueiden poistamiseksi:

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

Bonusvinkki: Varmista koodin yhteensopivuus

Ennen koodin muokkaamista on suositeltavaa varmuuskopioida verkkosivuston tiedostot ja tietokanta. Voit käyttää laajennuksia (kuten UpdraftPlusia) tehdäksesi varmuuskopiot nopeasti ja välttääksesi joutumasta yllättäen, kun jokin menee pieleen.

Samanaikaisesti, jos et ole perehtynyt PHP:hen, on suositeltavaa yrittää muokata koodia testiympäristössä sen sijaan, että käytät suoraan tuotantoympäristöä.

Koodin optimointi on jatkuvaa taistelua

Tämä kysymys näyttää yksinkertaiselta, mutta se on itse asiassa yleinen ongelma, joka on kohdattava verkkosivustojen kehittämisessä:Vanhan koodin yhteensopivuus uuden ympäristön kanssa. Olipa kyseessä PHP-version päivitys tai WordPress-toimintojen parantaminen, ne kaikki on suunniteltu tekemään verkkosivustosta tehokkaampi ja turvallisempi.

Kehittäjille on tärkeää päivittää koodi ajoissa ja oppia uusia tekniikoita. Anonyymit toiminnot eivät ainoastaan ​​tee koodista tiiviimpää, vaan myös parantavat suorituskykyä ja vähentävät mahdollisia tietoturvariskejä. Jokainen optimointi vie verkkosivustosi askeleen pidemmälle.

yhteenveto

  1. create_function() Sitä ei enää tueta PHP 7.2:ssa ja sitä uudemmissa versioissa, ja sen sijaan on suositeltavaa käyttää nimettömiä toimintoja.
  2. Koodin muokkauksen jälkeen verkkosivustosi on tehokkaampi ja turvallisempi.
  3. Parempi yhteensopivuus laajennusten ja teemojen kanssa voi olla parempi ratkaisu kuvakoon poistaminen käytöstä.
  4. Koodin optimointi ei ole vain ongelmien korjaamista, vaan myös askel kohti verkkosivustosi laadun parantamista.

Jos olet kohdannut samanlaisia ​​ongelmia, sinun kannattaa kokeilla tämän artikkelin ratkaisuja.

发表 评论

Sähköpostiosoitettasi ei julkaista. 必填 项 已 用 * 标注

Siirry alkuun