Recentemente eu abri o log de um site de cliente e vi muitas linhas com o erro: PHP Notice: Function _load_textdomain_just_in_time was called incorrectly.
Aqui está apenas um registro:
[25-Nov-2024 19:46:27 UTC] PHP Notice: Function _load_textdomain_just_in_time was called <strong>incorrectly</strong>. Translation loading for the <code>wp-mail-logging</code> domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the <code>init</code> action or later. Please see <a href="https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/">Debugging in WordPress</a> for more information. (This message was added in version 6.7.0.) in /var/www/dominio.com.br/public_html/wp-includes/functions.php on line 6114
Vi que há alguns posts em fóruns e até o o post “Developer advisory: Translation loading changes in WordPress 6.7” (Aviso ao desenvolvedor: Mudanças no carregamento da tradução no WordPress 6.7) no site do WooCommerce.
Portanto, o problema relatado está relacionado a mudanças no WordPress 6.7 e como as traduções são carregadas.
Em outras palavras, este erro ocorre porque algum código de um plugin ou tema está carregando traduções antes da ação init
, o que agora não é mais permitido no WordPress 6.7.
Então, vamos abordar o assunto e oferecer soluções práticas pra a solução mais eficiente.
Como Resolver Problemas de Traduções no WordPress 6.7
Aviso de tradução carregada muito cedo
Esse aviso geralmente está relacionado a plugins. O exemplo acima menciona o plugin WP Mail Logging.
a) Atualize os plugins
Verifique se há uma nova versão dos plugins que já considere as mudanças no WordPress 6.7.
b) Ajuste no código dos plugins
Não recomendo mexer em códigos de plugins, mas se quiser fazer isso e se você tem acesso ao código, certifique-se de que a função load_plugin_textdomain()
seja executada dentro da ação init
. Exemplo:
add_action('init', function() {
load_plugin_textdomain('wp-mail-logging', false, dirname(plugin_basename(__FILE__)) . '/languages/');
});
c) Suprima os avisos temporariamente
No arquivo wp-config.php
, adicione:
add_filter('doing_it_wrong_trigger_error', '__return_false');
Essa solução é apenas para impedir que os avisos encham os logs enquanto você aguarda uma atualização oficial do plugin.
Como evitar esses problemas no futuro?
Configure o WordPress corretamente para produção: Em servidores de produção, evite que avisos sejam exibidos para os usuários:
define('WP_DEBUG', false);
define('WP_DEBUG_DISPLAY', false);
define('WP_DEBUG_LOG', true);
Mantenha tudo atualizado: Sempre use as versões mais recentes do WordPress, plugins, temas e PHP.
Teste mudanças em ambiente de desenvolvimento: Antes de atualizar o WordPress ou o PHP em produção, se possível, realize testes em um ambiente separado.
Conclusão
Os avisos de depreciação e traduções no WordPress 6.7 podem parecer complexos, mas são reflexos das melhorias contínuas na plataforma.
Seguindo as práticas recomendadas e mantendo o ambiente atualizado, você evitará problemas no futuro.
Se precisar de ajuda para resolver essas questões ou ajustar o código do seu site, entre em contato conosco.
Vamos juntos garantir que seu site WordPress esteja sempre funcionando de forma otimizada!
Pesquisas relacionadas:
WordPress 6.7, avisos de depreciação, tradução WordPress, ltrim() deprecated, load_plugin_textdomain, WP Mail Logging, PHP 8.x