WordPress Uncaught Error: Aanroep naar ongedefinieerde functie create_function() oplossing

Ben jij ook geweesthood.discountfoutmelding"Uncaught Error: Call to undefined function create_function() in SNIPPET:62"Gegeven hoofdpijn?"

Dit probleem is eigenlijk niet moeilijk op te lossen. Laten we nu in detail bespreken waarom dit probleem optreedt en hoe u het kunt oplossen met eenvoudige en effectieve code.

Waarom krijg ik create_function-fouten?

Eerst wat achtergrondkennis. In PHP 7.2,create_function()Het is verouderd en in PHP 8.0 is deze functie direct verwijderd. Met andere woorden: als uw server is geüpgraded naar PHP 7.2 of hoger en nog steeds oude code gebruikt, zal dit probleem optreden.

Maar de kern van het probleem is:create_functionHet is een product uit een oud tijdperk. Het probleem ermee is niet alleen dat het niet langer wordt ondersteund, maar het brengt ook slechte prestaties en potentiële veiligheidsrisico's met zich mee. De nieuwe oplossing is om te gebruikenanonieme functie(Anonieme functies).

Wijzig de code: Los de create_function-fout op

WordPress Uncaught Error: Aanroep naar ongedefinieerde functie create_function() oplossing

Laten we nu kijken hoe we de oude code kunnen vervangen. Het volgende is het specifieke codewijzigingsplan:

originele code

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

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

Gewijzigde code

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

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

Code-uitleg:

  • function() { return 1; } is een anonieme functie waarvoor geen parameters en retourneringen nodig zijn 1.
  • get_bloginfo('url') Het is een functie die het startpaginaadres van de website retourneert. We verpakken het ook met een anonieme functie.

Betere aanpak: wees voorzichtig met het uitschakelen van thumbnails

Het volledig uitschakelen van WordPress-thumbnails is soms niet de beste optie. Als bepaalde thema's of plug-ins afbeeldingen van een specifieke grootte vereisen, kan het volledig uitschakelen ervan onverwachte problemen veroorzaken.

Hier is een flexibelere oplossing: schakel onnodige afbeeldingsformaten selectief uit via filters.

Voorbeeldcode

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

Deze aanpak lost niet alleen het probleem op, maar handhaaft ook de compatibiliteit met bepaalde functies.

Wijzig code

Voeg de gewijzigde code toe aan een van de volgende locaties:

  1. van het huidige onderwerp functions.php het dossier.
  2. Plug-in voor aangepaste functies (aanbevolen methode om codedekking door thema-updates te voorkomen).

Wat moet ik doen als de fout nog steeds optreedt nadat ik de code heb gewijzigd?

Als de plug-in voor vloeiende fragmentopslag is ingeschakeld en er na wijziging nog steeds fouten optreden, is deze mogelijk influent-snippet-storage/index.phpEr zit een cache in en de foutcode van error_files moet worden verwijderd.

harder zettenwp-content/fluent-snippet-storage/index.phpBestand, scroll naar het einde en zoek code die lijkt op het volgende:

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

Code om deze foutrecords te verwijderen:

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

Bonustip: zorg voor codecompatibiliteit

Voordat u de code wijzigt, wordt aanbevolen een back-up te maken van de websitebestanden en de database. U kunt een plug-in (zoals UpdraftPlus) gebruiken om de back-up snel te voltooien en te voorkomen dat u overrompeld wordt als er iets misgaat.

Als u niet bekend bent met PHP, is het tegelijkertijd raadzaam om te proberen de code in de testomgeving aan te passen in plaats van rechtstreeks de productieomgeving te bedienen.

Het optimaliseren van code is een voortdurende strijd

Deze vraag lijkt eenvoudig, maar het is eigenlijk een veelvoorkomend probleem waarmee rekening moet worden gehouden bij de ontwikkeling van websites:Compatibiliteit van oude code met nieuwe omgeving. Of het nu gaat om een ​​upgrade van de PHP-versie of een verbetering van WordPress-functies, ze zijn allemaal ontworpen om de website efficiënter en veiliger te laten werken.

Voor ontwikkelaars is het essentieel om de code tijdig bij te werken en nieuwe technologieën te leren. Anonieme functies maken de code niet alleen beknopter, maar verbeteren ook de prestaties en verminderen potentiële beveiligingsrisico's. Elke optimalisatie brengt uw website een stap verder.

overzicht

  1. create_function() Het wordt niet langer ondersteund in PHP 7.2 en hoger. Het wordt aanbevolen om in plaats daarvan anonieme functies te gebruiken.
  2. Na het aanpassen van de code zal uw website efficiënter en veiliger zijn.
  3. Voor een betere compatibiliteit met plug-ins en thema's kan het selectief uitschakelen van afbeeldingsformaten een betere oplossing zijn.
  4. Het optimaliseren van code gaat niet alleen over het oplossen van problemen, maar ook over een stap in de richting van het verbeteren van de kwaliteit van uw website.

Als u soortgelijke problemen bent tegengekomen, kunt u de oplossingen in dit artikel proberen.

发表 评论

Uw e-mailadres wordt niet gepubliceerd. 必填 项 已 用 * 标注

Artikel Directory
Scroll naar boven