Erro non detectado de WordPress: chamada á solución de función indefinida create_function().

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

Erro non detectado de WordPress: chamada á solución de función indefinida 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 devolve 1.
  • 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:

  1. do tema actual functions.php documento.
  2. 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ó.

总结

  1. create_function() Xa non se admite en PHP 7.2 e superior, e recoméndase utilizar funcións anónimas no seu lugar.
  2. Despois de modificar o código, o teu sitio web será máis eficiente e seguro.
  3. Para unha mellor compatibilidade con complementos e temas, desactivar selectivamente os tamaños das imaxes pode ser unha mellor solución.
  4. 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.

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Volver arriba