Directorio de artículos
¿Tú también has estado?WordPressmensaje de error"Uncaught Error: Call to undefined function create_function() in SNIPPET:62"¿Tienes dolor de cabeza?"
En realidad, este problema no es difícil de resolver. Hablemos ahora en detalle sobre por qué ocurre este problema y cómo resolverlo con un código simple y efectivo.
¿Por qué recibo errores create_function?
Primero, un poco de conocimiento previo. En PHP 7.2,create_function()Ha quedado obsoleta y en PHP 8.0, esta función se eliminó directamente. En otras palabras, si su servidor se actualizó a PHP 7.2 o superior y todavía usa código antiguo, ocurrirá este problema.
Pero el núcleo del problema es:create_functionEs un producto de una vieja era. El problema no es sólo que ya no es compatible, sino que también introduce un rendimiento deficiente y posibles riesgos de seguridad. La nueva solución es utilizarfunción anónima(Funciones Anónimas).
Modificar el código: resolver el error create_function

Ahora, veamos cómo reemplazar el código antiguo. El siguiente es el plan de modificación de código específico:
código original
//彻底禁止WordPress缩略图
add_filter( 'add_image_size', create_function( '', 'return 1;' ) );
//自定义登录页面的LOGO链接为首页链接
add_filter('login_headerurl', create_function(false,"return get_bloginfo('url');"));
Código modificado
// 彻底禁止 WordPress 缩略图
add_filter( 'add_image_size', function() { return 1; } );
// 自定义登录页面的 LOGO 链接为首页链接
add_filter( 'login_headerurl', function() { return get_bloginfo('url'); } );
Explicación del código:
function() { return 1; }es una función anónima que no requiere parámetros y devuelve1.get_bloginfo('url')Es una función que devuelve la dirección de la página de inicio del sitio web. También la envolvemos con una función anónima.
Mejor enfoque: trate la desactivación de miniaturas con precaución
Deshabilitar completamente las miniaturas de WordPress a veces no es la mejor opción. Si ciertos temas o complementos requieren imágenes de un tamaño específico, deshabilitarlos por completo puede causar problemas inesperados.
Aquí hay una solución más flexible: deshabilite selectivamente los tamaños de imagen innecesarios mediante filtros.
Código de muestra
add_filter( 'intermediate_image_sizes_advanced', function( $sizes ) {
unset( $sizes['thumbnail'] ); // 禁用缩略图
unset( $sizes['medium'] ); // 禁用中等大小
unset( $sizes['large'] ); // 禁用大图
return $sizes;
} );
Este enfoque no sólo resuelve el problema, sino que también mantiene la compatibilidad con determinadas funciones.
Modificar código
Agregue el código modificado a una de las siguientes ubicaciones:
- del tema actual
functions.phparchivo. - Complemento de función personalizada (método recomendado para evitar la cobertura del código mediante actualizaciones de temas).
¿Qué debo hacer si el error persiste después de modificar el código?
Si el complemento de almacenamiento de fragmentos fluidos está habilitado y todavía hay errores después de la modificación, es posible que esté enfluent-snippet-storage/index.phpHay un caché y es necesario eliminar el código de error de error_files.
aparecerwp-content/fluent-snippet-storage/index.phpArchivo, desplácese hacia abajo hasta el final y busque un código similar al siguiente:
'error_files' => array ( '1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62', ), );
Código para eliminar estos registros de error:
'1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62',
Consejo adicional: garantice la compatibilidad del código
Antes de modificar el código, se recomienda hacer una copia de seguridad de los archivos y la base de datos del sitio web. Puede utilizar complementos (como UpdraftPlus) para completar rápidamente las copias de seguridad y evitar que lo tomen por sorpresa cuando algo sale mal.
Al mismo tiempo, si no está familiarizado con PHP, se recomienda intentar modificar el código en el entorno de prueba en lugar de operar directamente en el entorno de producción.
Optimizar el código es una batalla constante
Esta pregunta parece simple, pero en realidad es un problema común que debe enfrentarse en el desarrollo de sitios web:Compatibilidad del código antiguo con el nuevo entorno.. Ya sea la actualización de la versión PHP o la mejora de las funciones de WordPress, todas están diseñadas para que el sitio web funcione de manera más eficiente y segura.
Para los desarrolladores, es fundamental actualizar el código de manera oportuna y aprender nuevas tecnologías. Las funciones anónimas no sólo hacen que el código sea más conciso, sino que también mejoran el rendimiento y reducen los posibles riesgos de seguridad. Cada optimización lleva su sitio web un paso más allá.
总结
create_function()Ya no es compatible con PHP 7.2 y superiores, y se recomienda utilizar funciones anónimas en su lugar.- Después de modificar el código, su sitio web será más eficiente y seguro.
- Para una mejor compatibilidad con complementos y temas, deshabilitar selectivamente los tamaños de imagen puede ser una mejor solución.
- Optimizar el código no se trata sólo de solucionar problemas, sino también de un paso hacia la mejora de la calidad de su sitio web.
Si ha encontrado problemas similares, puede probar las soluciones de este artículo.
Esperanza Chen Weiliang Blog ( https://www.chenweiliang.com/ ) compartido por "Error no detectado de WordPress: llamada a la función no definida create_function() Solución" puede resultarle útil.
Bienvenido a compartir el enlace de este artículo:https://www.chenweiliang.com/cwl-32407.html
Para desbloquear más trucos ocultos🔑, ¡bienvenido a unirse a nuestro canal de Telegram!
¡Comparte y dale me gusta si te gusta! ¡Tus acciones y me gusta son nuestra motivación continua!