WordPress Uncaught Error: Anrop till odefinierad funktion create_function()-lösning

Har du också varithood.discountfelmeddelande"Uncaught Error: Call to undefined function create_function() in SNIPPET:62"Med huvudvärk?"

Det här problemet är faktiskt inte svårt att lösa. Låt oss prata i detalj nu om varför detta problem uppstår och hur man löser det med enkel och effektiv kod.

Varför får jag create_function-fel?

Lite bakgrundskunskap först. I PHP 7.2,create_function()Den har föråldrats, och i PHP 8.0 togs denna funktion bort direkt. Med andra ord, om din server har uppgraderats till PHP 7.2 eller högre och fortfarande använder gammal kod kommer detta problem att uppstå.

Men kärnan i problemet är:create_functionDet är en produkt av en gammal tid. Problemet med det är inte bara att det inte längre stöds, utan det introducerar också dålig prestanda och potentiella säkerhetsrisker. Den nya lösningen är att användaanonym funktion(Anonyma funktioner).

Ändra koden: Lös felet create_function

WordPress Uncaught Error: Anrop till odefinierad funktion create_function()-lösning

Låt oss nu se hur man byter ut den gamla koden. Följande är den specifika kodändringsplanen:

originalkod

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

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

Ändrad kod

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

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

Kodförklaring:

  • function() { return 1; } är en anonym funktion som inte kräver några parametrar och returnerar 1.
  • get_bloginfo('url') Det är en funktion som returnerar webbadressen till hemsidan. Vi omsluter den också med en anonym funktion.

Bättre tillvägagångssätt: behandla inaktivering av miniatyrbilder med försiktighet

Att inaktivera WordPress-miniatyrer helt är ibland inte det bästa alternativet. Om vissa teman eller plugins kräver bilder av en viss storlek, kan det orsaka oväntade problem om du inaktiverar dem helt.

Här är en mer flexibel lösning: inaktivera selektivt onödiga bildstorlekar via filter.

Provkod

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

Detta tillvägagångssätt löser inte bara problemet, utan bibehåller också kompatibilitet med vissa funktioner.

Ändra koden

Lägg till den ändrade koden på en av följande platser:

  1. av aktuellt ämne functions.php fil.
  2. Anpassad funktion plug-in (rekommenderad metod för att undvika kodtäckning av temauppdateringar).

Vad ska jag göra om ett fel fortfarande uppstår efter att ha ändrat koden?

Om plugin-programmet fluent-snippet-storage är aktiverat och det fortfarande finns fel efter ändring, kan det varafluent-snippet-storage/index.phpDet finns en cache i filen och felkoden för error_files måste raderas.

skruva uppwp-content/fluent-snippet-storage/index.phpFil, gå till slutet och hitta kod som liknar följande:

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

Ta bort koden för dessa felposter:

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

Bonustips: Se till kodkompatibilitet

Innan du ändrar koden rekommenderar vi att du säkerhetskopierar webbplatsfilerna och databasen. Du kan använda en plug-in (som UpdraftPlus) för att slutföra säkerhetskopieringen snabbt och undvika att bli överraskad när något går fel.

Samtidigt, om du inte är bekant med PHP, rekommenderas det att försöka modifiera koden i testmiljön istället för att direkt driva produktionsmiljön.

Att optimera kod är en ständig kamp

Den här frågan verkar enkel, men det är faktiskt ett vanligt problem som måste mötas vid utveckling av webbplatser:Kompatibilitet av gammal kod med ny miljö. Oavsett om det är en uppgradering av PHP-versionen eller en förbättring av WordPress-funktioner, är de alla designade för att få webbplatsen att fungera mer effektivt och säkert.

För utvecklare är det viktigt att uppdatera koden i tid och lära sig ny teknik. Anonyma funktioner gör inte bara koden mer koncis, utan förbättrar också prestandan och minskar potentiella säkerhetsrisker. Varje optimering tar din webbplats ett steg längre.

总结

  1. create_function() Det stöds inte längre i PHP 7.2 och högre. Det rekommenderas att använda anonyma funktioner istället.
  2. Efter att ha ändrat koden blir din webbplats mer effektiv och säker.
  3. För bättre kompatibilitet med plugins och teman kan det vara en bättre lösning att selektivt inaktivera bildstorlekar.
  4. Att optimera kod handlar inte bara om att åtgärda problem, utan också ett steg mot att förbättra kvaliteten på din webbplats.

Om du har stött på liknande problem kanske du vill prova lösningarna i den här artikeln.

发表 评论

Din e-postadress kommer inte att publiceras. 必填 项 已 用 * 标注

Artikelkatalog
Bläddra till början