„WordPress“ nepastebėta klaida: iškvieskite neapibrėžtos funkcijos create_function() sprendimą

Ar ir tu buvaiWordPressklaidos pranešimas"Uncaught Error: Call to undefined function create_function() in SNIPPET:62– Skaudėjo galvą?

Iš tikrųjų šią problemą išspręsti nėra sunku. Dabar išsamiai pakalbėkime apie tai, kodėl ši problema kyla ir kaip ją išspręsti naudojant paprastą ir veiksmingą kodą.

Kodėl gaunu „create_function“ klaidas?

Pirmiausia šiek tiek žinių. PHP 7.2 versijojecreate_function()Ji buvo pasenusi, o PHP 8.0 ši funkcija buvo pašalinta tiesiogiai. Kitaip tariant, jei jūsų serveris buvo atnaujintas iki PHP 7.2 ar naujesnės versijos ir vis dar naudoja seną kodą, ši problema iškils.

Tačiau problemos esmė yra tokia:create_functionTai senos eros produktas. Problema yra ne tik tai, kad jis nebepalaikomas, bet ir prastas našumas bei galimos saugumo rizikos. Naujas sprendimas yra naudotianoniminė funkcija(Anoniminės funkcijos).

Modifikuokite kodą: išspręskite klaidą Create_function

„WordPress“ nepastebėta klaida: iškvieskite neapibrėžtos funkcijos create_function() sprendimą

Dabar pažiūrėkime, kaip pakeisti seną kodą. Toliau pateikiamas konkretus kodo modifikavimo planas:

originalus kodas

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

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

Modifikuotas kodas

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

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

Kodo paaiškinimas:

  • function() { return 1; } yra anoniminė funkcija, kuriai nereikia jokių parametrų ir grąžinimų 1.
  • get_bloginfo('url') Tai funkcija, kuri grąžina svetainės pagrindinio puslapio adresą.

Geresnis požiūris: su miniatiūrų išjungimu elkitės atsargiai

Visiškai išjungti „WordPress“ miniatiūras kartais nėra geriausias pasirinkimas. Jei tam tikroms temoms ar papildiniams reikalingi tam tikro dydžio vaizdai, visiškai išjungus juos gali kilti netikėtų problemų.

Čia yra lankstesnis sprendimas: pasirinktinai išjunkite nereikalingus vaizdo dydžius naudodami filtrus.

Kodo pavyzdys

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

Šis metodas ne tik išsprendžia problemą, bet ir palaiko suderinamumą su tam tikromis funkcijomis.

Modifikuoti kodą

Pridėkite pakeistą kodą vienoje iš šių vietų:

  1. dabartinės temos functions.php dokumentas.
  2. Pasirinktinės funkcijos papildinys (rekomenduojamas būdas išvengti kodo aprėpties temų atnaujinimais).

Ką daryti, jei klaida vis tiek iškyla pakeitus kodą?

Jei „fluent-snippet-storage“ papildinys įgalintas ir po pakeitimo vis dar yra klaidų, jis gali būtifluent-snippet-storage/index.phpJame yra talpykla, todėl error_files klaidos kodą reikia ištrinti.

pasirodytiwp-content/fluent-snippet-storage/index.phpFailą, slinkite žemyn iki galo ir raskite kodą, panašų į šį:

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

Kodas šiems klaidų įrašams ištrinti:

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

Papildomas patarimas: Užtikrinkite kodo suderinamumą

Prieš modifikuojant kodą, rekomenduojama pasidaryti atsargines svetainės failų ir duomenų bazės kopijas. Galite naudoti papildinius (pvz., „UpdraftPlus“), kad greitai sukurtumėte atsargines kopijas ir išvengtumėte netikėtų veiksmų, kai kas nors negerai.

Tuo pačiu metu, jei nesate susipažinę su PHP, rekomenduojama pabandyti modifikuoti kodą bandomojoje aplinkoje, o ne tiesiogiai valdyti gamybos aplinką.

Kodo optimizavimas yra nuolatinė kova

Šis klausimas atrodo paprastas, tačiau iš tikrųjų tai yra dažna problema, su kuria reikia susidurti kuriant svetainę:Seno kodo suderinamumas su nauja aplinka. Nesvarbu, ar tai būtų PHP versijos atnaujinimas, ar WordPress funkcijų tobulinimas – visi jie skirti tam, kad svetainė veiktų efektyviau ir saugiau.

Kūrėjams labai svarbu laiku atnaujinti kodą ir išmokti naujų technologijų. Anoniminės funkcijos ne tik daro kodą glaustesnį, bet ir pagerina našumą bei sumažina galimą saugumo riziką. Kiekvienas optimizavimas perkelia jūsų svetainę dar vienu žingsniu.

apibendrinti

  1. create_function() PHP 7.2 ir naujesnėse versijose jis nebepalaikomas, todėl rekomenduojama naudoti anonimines funkcijas.
  2. Pakeitus kodą jūsų svetainė bus efektyvesnė ir saugesnė.
  3. Siekiant geresnio suderinamumo su papildiniais ir temomis, pasirinktinai išjungti vaizdo dydžius gali būti geresnis sprendimas.
  4. Kodo optimizavimas yra ne tik problemų sprendimas, bet ir žingsnis link svetainės kokybės gerinimo.

Jei susidūrėte su panašiomis problemomis, galbūt norėsite išbandyti šiame straipsnyje pateiktus sprendimus.

发表 评论

Jūsų el. pašto adresas nebus skelbiamas. Naudojami privalomi laukai * Etiketė

Straipsnių katalogas
Pereikite į viršų