Directorio de artigos
Ti tamén estivechesWordPressmensaxe de erro"Uncaught Error: Call to undefined function create_function() in SNIPPET:62"Dáche unha dor de cabeza?"
En realidade, este problema non é difícil de resolver. Falemos agora en detalle sobre por que ocorre este problema e como resolvelo cun código sinxelo e eficaz.
Por que recibo erros create_function?
Primeiro un pouco de coñecemento de fondo. En PHP 7.2,create_function()Quedou en desuso e en PHP 8.0, esta función eliminouse directamente. Noutras palabras, se o teu servidor se actualizou a PHP 7.2 ou superior e aínda está usando código antigo, producirase este problema.
Pero o núcleo do problema é:create_functionÉ un produto dunha época antiga. O problema con el non é só que xa non é compatible, senón que tamén presenta un rendemento deficiente e riscos potenciais de seguridade. A nova solución é usarfunción anónima(Funcións anónimas).
Modifica o código: Resolve o erro create_function

Agora, imos ver como substituír o código antigo. O seguinte é o plan específico de modificación do código:
código orixinal
//彻底禁止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 do código :
function() { return 1; }é unha función anónima que non require parámetros e devolve1.get_bloginfo('url')É unha función que devolve o enderezo da páxina de inicio do sitio web. Tamén o envolvemos cunha función anónima.
Mellor enfoque: trata a desactivación das miniaturas con precaución
Desactivar as miniaturas de WordPress ás veces non é a mellor opción. Se certos temas ou complementos requiren imaxes dun tamaño específico, desactivalos completamente pode causar problemas inesperados.
Aquí tes unha solución máis flexible: desactiva selectivamente os tamaños de imaxe innecesarios mediante filtros.
Código de mostra
add_filter( 'intermediate_image_sizes_advanced', function( $sizes ) {
unset( $sizes['thumbnail'] ); // 禁用缩略图
unset( $sizes['medium'] ); // 禁用中等大小
unset( $sizes['large'] ); // 禁用大图
return $sizes;
} );
Este enfoque non só resolve o problema, senón que tamén mantén a compatibilidade con determinadas funcións.
Modificar código
Engade o código modificado a unha das seguintes localizacións:
- do tema actual
functions.phpdocumento. - Complemento de función personalizada (método recomendado para evitar a cobertura de código mediante actualizacións de temas).
Que debo facer se o erro aínda se produce despois de modificar o código?
Se o complemento fluent-snippet-storage está activado e aínda hai erros despois da modificación, pode estar enfluent-snippet-storage/index.phpHai unha caché nel e hai que eliminar o código de erro de error_files.
aparecerwp-content/fluent-snippet-storage/index.phpFicheiro, desprázate ata o final e busca un código semellante ao seguinte:
'error_files' => array ( '1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62', ), );
Código para eliminar estes rexistros de erros:
'1-e7a7bbe999a4wordpresse5a4b4e983a8e697a0e794a8e4bfa1e681af.php' => 'Uncaught Error: Call to undefined function create_function() in SNIPPET:62',
Consello extra: asegúrese de compatibilidade do código
Antes de modificar o código, recoméndase facer unha copia de seguridade dos ficheiros do sitio web e da base de datos. Podes usar complementos (como UpdraftPlus) para completar rapidamente as copias de seguridade e evitar que te pillen desprevenido cando algo falla.
Ao mesmo tempo, se non está familiarizado con PHP, recoméndase que intente modificar o código no ambiente de proba en lugar de operar directamente o ambiente de produción.
Optimizar o código é unha batalla constante
Este problema aparentemente sinxelo é en realidade común no desenvolvemento de sitios web: a compatibilidade entre o código antigo e os novos entornos . Xa sexa actualizando unha versión de PHP ou mellorando as funcionalidades de WordPress, o obxectivo é facer que os sitios web funcionen de forma máis eficiente e segura.
Para os desenvolvedores, é fundamental actualizar o código de forma oportuna e aprender novas tecnoloxías. As funcións anónimas non só fan que o código sexa máis conciso, senón que tamén melloran o rendemento e reducen os posibles riscos de seguridade. Cada optimización leva o teu sitio web un paso máis aló.
总结
create_function()Xa non se admite en PHP 7.2 e superior, e recoméndase utilizar funcións anónimas no seu lugar.- Despois de modificar o código, o teu sitio web será máis eficiente e seguro.
- Para unha mellor compatibilidade con complementos e temas, desactivar selectivamente os tamaños das imaxes pode ser unha mellor solución.
- Optimizar o código non é só solucionar problemas, senón tamén un paso para mellorar a calidade do teu sitio web.
Se atopou problemas similares, pode querer probar as solucións deste artigo.
Esperemos que a solución a "Erro non detectado de WordPress: chamada á función indefinida create_function()" compartida no blog de Chen Weiliang ( https://www.chenweiliang.com/ ) che sexa útil.
Non dubides en compartir a ligazón deste artigo: https://www.chenweiliang.com/cwl-32407.html
