WordPress nem észlelt hiba: Undefined függvény create_function() megoldás hívása

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

WordPress nem észlelt hiba: Undefined függvény create_function() megoldás hívása

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ér 1.
  • 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:

  1. aktuális témáról functions.php fájl.
  2. 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

  1. 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.
  2. A kód módosítása után webhelye hatékonyabb és biztonságosabb lesz.
  3. 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.
  4. 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.

发表 评论

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

Lapozzon a lap tetejére