Cikkkönyvtár
Te is voltálWordPresshibaüzenet"Uncaught Error: Call to undefined function create_function() in SNIPPET:62– Fájt a feje?
Ezt a problémát valójában nem nehéz megoldani. Beszéljünk most részletesen arról, hogy miért fordul elő ez a probléma, és hogyan lehet egyszerű és hatékony kóddal megoldani.
Miért kapok create_function hibákat?
Először egy kis háttérismeret. PHP 7.2-bencreate_function()Elavult, és a PHP 8.0-ban ezt a funkciót közvetlenül eltávolították. Más szóval, ha a szervert PHP 7.2-re vagy újabbra frissítették, és még mindig régi kódot használ, akkor ez a probléma jelentkezik.
De a probléma lényege:create_functionEgy régi kor terméke. A probléma nemcsak az, hogy már nem támogatott, hanem gyenge teljesítményt és potenciális biztonsági kockázatokat is jelent. Az új megoldás a használatnévtelen funkció(Anonymous Functions).
Módosítsa a kódot: Oldja meg a create_function hibát

Most nézzük meg, hogyan lehet lecserélni a régi kódot. A következő a konkrét kódmódosítási terv:
eredeti kód
//彻底禁止WordPress缩略图
add_filter( 'add_image_size', create_function( '', 'return 1;' ) );
//自定义登录页面的LOGO链接为首页链接
add_filter('login_headerurl', create_function(false,"return get_bloginfo('url');"));
Módosított kód
// 彻底禁止 WordPress 缩略图
add_filter( 'add_image_size', function() { return 1; } );
// 自定义登录页面的 LOGO 链接为首页链接
add_filter( 'login_headerurl', function() { return get_bloginfo('url'); } );
Kód magyarázata :
function() { return 1; }egy névtelen függvény, amely nem igényel paramétereket és visszatér1.get_bloginfo('url')Ez egy olyan funkció, amely visszaadja a weboldal kezdőlap címét.
Jobb megközelítés: óvatosan kezelje az indexképek letiltását
A WordPress miniatűrök teljes letiltása néha nem a legjobb megoldás. Ha bizonyos témákhoz vagy bővítményekhez meghatározott méretű képekre van szükség, ezek teljes letiltása váratlan problémákat okozhat.
Íme egy rugalmasabb megoldás: szelektíven tiltsa le a szükségtelen képméreteket szűrőkkel.
Minta kód
add_filter( 'intermediate_image_sizes_advanced', function( $sizes ) {
unset( $sizes['thumbnail'] ); // 禁用缩略图
unset( $sizes['medium'] ); // 禁用中等大小
unset( $sizes['large'] ); // 禁用大图
return $sizes;
} );
Ez a megközelítés nem csak megoldja a problémát, hanem fenntartja a kompatibilitást bizonyos funkciókkal.
Kód módosítása
Adja hozzá a módosított kódot a következő helyek egyikéhez:
- aktuális témáról
functions.phpfájl. - Egyedi funkciójú beépülő modul (ajánlott módszer a témafrissítések általi kódlefedettség elkerülésére).
Mi a teendő, ha a hiba a kód módosítása után is fennáll?
Ha a fluent-snippet-storage beépülő modul engedélyezve van, és a módosítás után is vannak hibák, előfordulhat, hogyfluent-snippet-storage/index.phpVan benne gyorsítótár, az error_files hibakódját pedig törölni kell.
felbukkanwp-content/fluent-snippet-storage/index.phpFájl, görgessen le a végére, és keresse meg a következőhöz hasonló kódot:
'error_files' => array ( '1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62', ), );
Kód a hibarekordok törléséhez:
'1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62',
Bónusz tipp: Győződjön meg a kód kompatibilitásáról
A kód módosítása előtt ajánlatos biztonsági másolatot készíteni a webhely fájljairól és adatbázisáról. Használhat beépülő modulokat (például az UpdraftPlus-t) a biztonsági mentések gyors elvégzéséhez, és elkerülheti, hogy véletlenül megakadjanak, ha valami elromlik.
Ugyanakkor, ha nem ismeri a PHP-t, javasoljuk, hogy a tesztkörnyezetben próbálja meg módosítani a kódot, ahelyett, hogy közvetlenül működtetné az éles környezetet.
A kód optimalizálása állandó harc
Ez a látszólag egyszerű probléma valójában gyakori a weboldalfejlesztésben: a régi kód és az új környezetek kompatibilitása . Akár egy PHP verzió frissítéséről, akár a WordPress funkcióinak fejlesztéséről van szó, a cél az, hogy a weboldalak hatékonyabban és biztonságosabban működjenek.
A fejlesztők számára elengedhetetlen a kód időben történő frissítése és az új technológiák elsajátítása. Az anonim funkciók nemcsak tömörebbé teszik a kódot, hanem javítják a teljesítményt és csökkentik a lehetséges biztonsági kockázatokat is. Minden optimalizálás egy lépéssel tovább viszi webhelyét.
összefoglalás
create_function()A PHP 7.2 és újabb verziói már nem támogatják. Javasoljuk, hogy névtelen függvényeket használjon.- A kód módosítása után webhelye hatékonyabb és biztonságosabb lesz.
- A bővítményekkel és témákkal való jobb kompatibilitás érdekében jobb megoldás lehet a képméretek szelektív letiltása.
- A kód optimalizálása nem csak a problémák megoldását jelenti, hanem egy lépést is jelent webhelye minőségének javítása felé.
Ha hasonló problémákkal találkozott, érdemes lehet kipróbálnia a cikkben található megoldásokat.
Remélhetőleg hasznosnak találod a Chen Weiliang blogján ( https://www.chenweiliang.com/ ) megosztott "WordPress Uncaught Error: Call to undefined function create_function()" hibaüzenet megoldását .
Nyugodtan oszd meg a cikk linkjét: https://www.chenweiliang.com/cwl-32407.html
