Répertoire d'articles
- 1 Pourquoi est-ce que j'obtiens des erreurs create_function ?
- 2 Modifier le code : résoudre l'erreur create_function
- 3 Meilleure approche : traiter la désactivation des vignettes avec prudence
- 4 Modifier le code
- 5 Astuce bonus : assurez-vous de la compatibilité du code
- 6 L'optimisation du code est une bataille constante
- 7 Résumé
Avez-vous également étéhood.discountmessage d'erreur"Uncaught Error: Call to undefined function create_function() in SNIPPET:62« Vous avez mal à la tête ? »
Ce problème n’est en fait pas difficile à résoudre. Parlons maintenant en détail de la raison pour laquelle ce problème se produit et de la manière de le résoudre avec un code simple et efficace.
Pourquoi est-ce que j'obtiens des erreurs create_function ?
Un peu de connaissances de base d'abord. En PHP 7.2,create_function()Elle est obsolète et dans PHP 8.0, cette fonction a été directement supprimée. En d’autres termes, si votre serveur a été mis à niveau vers PHP 7.2 ou supérieur et utilise toujours l’ancien code, ce problème se produira.
Mais le cœur du problème est :create_functionC'est un produit d'une époque ancienne. Le problème n’est pas seulement qu’il n’est plus pris en charge, mais il introduit également de mauvaises performances et des risques de sécurité potentiels. La nouvelle solution consiste à utiliserfonction anonyme(Fonctions anonymes).
Modifier le code : résoudre l'erreur create_function

Voyons maintenant comment remplacer l'ancien code. Voici le plan de modification du code spécifique :
code d'origine
//彻底禁止WordPress缩略图
add_filter( 'add_image_size', create_function( '', 'return 1;' ) );
//自定义登录页面的LOGO链接为首页链接
add_filter('login_headerurl', create_function(false,"return get_bloginfo('url');"));
Code modifié
// 彻底禁止 WordPress 缩略图
add_filter( 'add_image_size', function() { return 1; } );
// 自定义登录页面的 LOGO 链接为首页链接
add_filter( 'login_headerurl', function() { return get_bloginfo('url'); } );
Explication du code:
function() { return 1; }est une fonction anonyme qui ne nécessite aucun paramètre et renvoie1.get_bloginfo('url')C'est une fonction qui renvoie l'adresse de la page d'accueil du site Web. Nous l'enveloppons également avec une fonction anonyme.
Meilleure approche : traiter la désactivation des vignettes avec prudence
Désactiver complètement les vignettes WordPress n’est parfois pas la meilleure option. Si certains thèmes ou plugins nécessitent des images d'une taille spécifique, leur désactivation complète peut entraîner des problèmes inattendus.
Voici une solution plus flexible : désactivez sélectivement les tailles d'image inutiles via des filtres.
Exemple de code
add_filter( 'intermediate_image_sizes_advanced', function( $sizes ) {
unset( $sizes['thumbnail'] ); // 禁用缩略图
unset( $sizes['medium'] ); // 禁用中等大小
unset( $sizes['large'] ); // 禁用大图
return $sizes;
} );
Cette approche résout non seulement le problème, mais maintient également la compatibilité avec certaines fonctionnalités.
Modifier le code
Ajoutez le code modifié à l'un des emplacements suivants :
- du sujet actuel
functions.phpfichier. - Plug-in de fonction personnalisée (méthode recommandée pour éviter la couverture du code par les mises à jour du thème).
Que dois-je faire si l'erreur persiste après modification du code ?
Si le plug-in fluent-snippet-storage est activé et que des erreurs subsistent après la modification, il se peut qu'il soit dansfluent-snippet-storage/index.phpIl contient un cache et le code d'erreur de error_files doit être supprimé.
Venezwp-content/fluent-snippet-storage/index.phpFichier, faites défiler jusqu'à la fin et recherchez un code similaire au suivant :
'error_files' => array ( '1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62', ), );
Code pour supprimer ces enregistrements d'erreur :
'1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62',
Astuce bonus : assurez-vous de la compatibilité du code
Avant de modifier le code, il est recommandé de sauvegarder les fichiers et la base de données du site Web. Vous pouvez utiliser des plug-ins (tels que UpdraftPlus) pour effectuer rapidement des sauvegardes et éviter d'être pris au dépourvu en cas de problème.
Parallèlement, si vous n'êtes pas familier avec PHP, il est recommandé d'essayer de modifier le code dans l'environnement de test plutôt que d'exploiter directement l'environnement de production.
L'optimisation du code est une bataille constante
Cette question semble simple, mais il s’agit en fait d’un problème courant auquel il faut faire face lors du développement de sites Web :Compatibilité de l'ancien code avec le nouvel environnement. Qu’il s’agisse d’une mise à niveau de la version PHP ou d’une amélioration des fonctions de WordPress, elles sont toutes conçues pour rendre le site Web plus efficace et plus sécurisé.
Pour les développeurs, il est essentiel de mettre à jour le code en temps opportun et d’apprendre de nouvelles technologies. Les fonctions anonymes rendent non seulement le code plus concis, mais améliorent également les performances et réduisent les risques de sécurité potentiels. Chaque optimisation amène votre site Web encore plus loin.
Résumé
create_function()Il n'est plus pris en charge dans PHP 7.2 et supérieur. Il est recommandé d'utiliser des fonctions anonymes à la place.- Après avoir modifié le code, votre site internet sera plus efficace et sécurisé.
- Pour une meilleure compatibilité avec les plugins et les thèmes, la désactivation sélective de la taille des images peut être une meilleure solution.
- L'optimisation du code ne consiste pas seulement à résoudre des problèmes, mais également à améliorer la qualité de votre site Web.
Si vous avez rencontré des problèmes similaires, vous souhaiterez peut-être essayer les solutions proposées dans cet article.
J'espère que le blog de Chen Weiliang ( https://www.chenweiliang.com/ ) partagé par « Erreur WordPress non détectée : appel à la fonction non définie create_function() Solution » peut vous être utile.
Bienvenue à partager le lien de cet article :https://www.chenweiliang.com/cwl-32407.html
Pour débloquer plus d'astuces cachées🔑, bienvenue sur notre chaîne Telegram !
Partagez et likez si vous aimez ! Vos partages et vos likes sont notre motivation continue !