Erro não detectado do WordPress: chamada para solução create_function() de função indefinida

Você também já esteveWordPressmensagem de erro"Uncaught Error: Call to undefined function create_function() in SNIPPET:62"Deu dor de cabeça?"

Na verdade, esse problema não é difícil de resolver. Vamos falar em detalhes agora sobre por que esse problema ocorre e como resolvê-lo com um código simples e eficaz.

Por que recebo erros de create_function?

Um pouco de conhecimento prévio primeiro. No PHP 7.2,create_function()Ela foi descontinuada e no PHP 8.0 esta função foi removida diretamente. Em outras palavras, se o seu servidor foi atualizado para PHP 7.2 ou superior e ainda usa código antigo, esse problema ocorrerá.

Mas o cerne do problema é:create_functionÉ um produto de uma época antiga. O problema não é apenas que não é mais suportado, mas também apresenta baixo desempenho e potenciais riscos de segurança. A nova solução é usarfunção anônima(Funções anônimas).

Modifique o código: resolva o erro create_function

Erro não detectado do WordPress: chamada para solução create_function() de função indefinida

Agora, vamos ver como substituir o código antigo. A seguir está o plano específico de modificação de código:

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'); } );

Explicação do código:

  • function() { return 1; } é uma função anônima que não requer parâmetros e retorna 1.
  • get_bloginfo('url') É uma função que retorna o endereço da página inicial do site. Também o envolvemos com uma função anônima.

Melhor abordagem: trate a desativação de miniaturas com cautela

Desativar completamente as miniaturas do WordPress às ​​vezes não é a melhor opção. Se determinados temas ou plug-ins exigirem imagens de um tamanho específico, desativá-los completamente poderá causar problemas inesperados.

Aqui está uma solução mais flexível: desative seletivamente tamanhos de imagem desnecessários por meio de filtros.

Código de exemplo

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

Essa abordagem não apenas resolve o problema, mas também mantém a compatibilidade com determinados recursos.

Modificar código

Adicione o código modificado a um dos seguintes locais:

  1. do tópico atual functions.php Arquivo.
  2. Plug-in de função personalizada (método recomendado para evitar cobertura de código por atualizações de tema).

O que devo fazer se o erro persistir após a modificação do código?

Se o plug-in fluent-snippet-storage estiver ativado e ainda houver erros após a modificação, ele pode estar emfluent-snippet-storage/index.phpHá um cache nele e o código de erro de error_files precisa ser excluído.

virar para cimawp-content/fluent-snippet-storage/index.phpArquivo, role para baixo até o final e encontre um código semelhante ao seguinte:

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

Código para excluir esses registros de erro:

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

Dica bônus: garanta a compatibilidade do código

Antes de modificar o código, é recomendável fazer backup dos arquivos e do banco de dados do site. Você pode usar plug-ins (como UpdraftPlus) para concluir backups rapidamente e evitar ser pego de surpresa quando algo der errado.

Ao mesmo tempo, se você não estiver familiarizado com PHP, é recomendável tentar modificar o código no ambiente de teste em vez de operar diretamente no ambiente de produção.

Otimizar o código é uma batalha constante

Esta questão parece simples, mas na verdade é um problema comum que precisa ser enfrentado no desenvolvimento de sites:Compatibilidade do código antigo com o novo ambiente. Seja a atualização da versão PHP ou o aprimoramento das funções do WordPress, todos foram pensados ​​para fazer o site funcionar com mais eficiência e segurança.

Para os desenvolvedores, é essencial atualizar o código em tempo hábil e aprender novas tecnologias. As funções anônimas não apenas tornam o código mais conciso, mas também melhoram o desempenho e reduzem possíveis riscos de segurança. Cada otimização leva seu site um passo adiante.

总结

  1. create_function() Não é mais suportado no PHP 7.2 e superior e é recomendado o uso de funções anônimas.
  2. Após modificar o código, seu site ficará mais eficiente e seguro.
  3. Para melhor compatibilidade com plug-ins e temas, desabilitar seletivamente os tamanhos das imagens pode ser uma solução melhor.
  4. Otimizar o código não é apenas corrigir problemas, mas também um passo para melhorar a qualidade do seu site.

Se você encontrou problemas semelhantes, tente as soluções deste artigo.

发表 评论

Seu endereço de e-mail não será publicado. 必填 项 已 用 * 标注

Artigo Diretório
Voltar ao Topo