Nicht abgefangener WordPress-Fehler: Aufruf einer undefinierten Funktion „create_function()“-Lösung

Warst du auch schonWordPressFehlermeldung"Uncaught Error: Call to undefined function create_function() in SNIPPET:62„Kopfschmerzen gegeben?“

Dieses Problem ist eigentlich nicht schwer zu lösen. Lassen Sie uns nun ausführlich darüber sprechen, warum dieses Problem auftritt und wie es mit einfachem und effektivem Code gelöst werden kann.

Warum erhalte ich create_function-Fehler?

Zunächst ein wenig Hintergrundwissen. In PHP 7.2,create_function()Sie ist veraltet und in PHP 8.0 wurde diese Funktion direkt entfernt. Mit anderen Worten: Wenn Ihr Server auf PHP 7.2 oder höher aktualisiert wurde und immer noch alten Code verwendet, tritt dieses Problem auf.

Aber der Kern des Problems ist:create_functionEs ist ein Produkt aus einer alten Zeit. Das Problem dabei ist nicht nur, dass es nicht mehr unterstützt wird, sondern es bringt auch eine schlechte Leistung und potenzielle Sicherheitsrisiken mit sich. Die neue Lösung ist zu verwendenanonyme Funktion(Anonyme Funktionen).

Ändern Sie den Code: Beheben Sie den Fehler „create_function“.

Nicht abgefangener WordPress-Fehler: Aufruf einer undefinierten Funktion „create_function()“-Lösung

Sehen wir uns nun an, wie der alte Code ersetzt wird. Das Folgende ist der spezifische Code-Änderungsplan:

Originalcode

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

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

Geänderter Code

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

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

Code-Erklärung:

  • function() { return 1; } ist eine anonyme Funktion, die keine Parameter und Rückgaben erfordert 1.
  • get_bloginfo('url') Es handelt sich um eine Funktion, die die Homepage-Adresse der Website zurückgibt. Wir verpacken sie auch mit einer anonymen Funktion.

Besserer Ansatz: Behandeln Sie die Deaktivierung von Miniaturansichten mit Vorsicht

Das vollständige Deaktivieren von WordPress-Miniaturansichten ist manchmal nicht die beste Option. Wenn für bestimmte Themes oder Plugins Bilder einer bestimmten Größe erforderlich sind, kann die vollständige Deaktivierung zu unerwarteten Problemen führen.

Hier ist eine flexiblere Lösung: Deaktivieren Sie unnötige Bildgrößen gezielt über Filter.

Beispielcode

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

Dieser Ansatz löst nicht nur das Problem, sondern gewährleistet auch die Kompatibilität mit bestimmten Funktionen.

Code ändern

Fügen Sie den geänderten Code an einem der folgenden Orte hinzu:

  1. des aktuellen Themas functions.php 文件 文件
  2. Benutzerdefiniertes Funktions-Plug-in (empfohlene Methode, um Codeabdeckung durch Theme-Updates zu vermeiden).

Was soll ich tun, wenn der Fehler nach der Änderung des Codes weiterhin auftritt?

Wenn das Fluent-Snippet-Storage-Plug-In aktiviert ist und nach der Änderung immer noch Fehler auftreten, ist es möglicherweise influent-snippet-storage/index.phpDarin befindet sich ein Cache und der Fehlercode von error_files muss gelöscht werden.

auftauchenwp-content/fluent-snippet-storage/index.phpDatei, scrollen Sie bis zum Ende und suchen Sie nach Code, der etwa dem folgenden ähnelt:

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

Code zum Löschen dieser Fehlerdatensätze:

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

Bonus-Tipp: Stellen Sie die Code-Kompatibilität sicher

Bevor Sie den Code ändern, wird empfohlen, die Website-Dateien und die Datenbank zu sichern. Sie können ein Plug-in (z. B. UpdraftPlus) verwenden, um die Sicherung schnell abzuschließen und zu vermeiden, dass Sie überrascht werden, wenn etwas schief geht.

Wenn Sie mit PHP nicht vertraut sind, wird gleichzeitig empfohlen, zu versuchen, den Code in der Testumgebung zu ändern, anstatt die Produktionsumgebung direkt zu betreiben.

Die Optimierung von Code ist ein ständiger Kampf

Diese Frage scheint einfach zu sein, ist aber tatsächlich ein häufiges Problem, das bei der Website-Entwicklung angegangen werden muss:Kompatibilität von altem Code mit neuer Umgebung. Ob es sich um ein Upgrade der PHP-Version oder eine Verbesserung der WordPress-Funktionen handelt, sie alle sind darauf ausgerichtet, die Website effizienter und sicherer laufen zu lassen.

Für Entwickler ist es wichtig, den Code rechtzeitig zu aktualisieren und neue Technologien zu erlernen. Anonyme Funktionen machen den Code nicht nur prägnanter, sondern verbessern auch die Leistung und verringern potenzielle Sicherheitsrisiken. Jede Optimierung bringt Ihre Website einen Schritt weiter.

总结

  1. create_function() Es wird in PHP 7.2 und höher nicht mehr unterstützt. Es wird empfohlen, stattdessen anonyme Funktionen zu verwenden.
  2. Nach der Änderung des Codes wird Ihre Website effizienter und sicherer.
  3. Für eine bessere Kompatibilität mit Plugins und Themes kann die selektive Deaktivierung der Bildgrößen eine bessere Lösung sein.
  4. Bei der Codeoptimierung geht es nicht nur um die Behebung von Problemen, sondern auch um einen Schritt zur Verbesserung der Qualität Ihrer Website.

Wenn Sie auf ähnliche Probleme gestoßen sind, können Sie die Lösungen in diesem Artikel ausprobieren.

发表 评论

Ihre E-Mail-Adresse wird nicht veröffentlicht. 必填 项 已 已 * 标注

Nach oben scrollen