« _load_textdomain_just_in_time was called incorrectly » : avis de traduction WordPress

Fiche du décodeur d'erreurs, mise à jour le 12 octobre 2026

AvertissementErreurs PHP
Le message affiché
Notice: Function _load_textdomain_just_in_time was called <strong>incorrectly</strong>. Translation loading for the <code>woocommerce</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.
Autres formulations du même message 3
  • Notice: La fonction _load_textdomain_just_in_time a été appelée de façon incorrecte. Le chargement de la traduction pour le domaine astra a été déclenché trop tôt. Cela indique généralement que du code dans l’extension ou le thème s’exécute trop tôt. Les traductions doivent être chargées au moment de l’action init ou plus tard.
  • PHP Notice: Function _load_textdomain_just_in_time was called <strong>incorrectly</strong>. Translation loading for the <code>wordpress-seo</code> domain was triggered too early.
  • Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the google-analytics-for-wordpress domain was triggered too early.

Depuis la version 6.7, WordPress signale quand une extension ou un thème réclame ses traductions trop tôt, avant que WordPress ait fini de se mettre en place et sache dans quelle langue afficher le site. Le nom placé après « for the » (ou « pour le domaine ») désigne l’extension ou le thème en cause. C’est un avis (Notice) : le site fonctionne, et le message n’apparaît que si le mode débogage est actif.

Pourquoi cette erreur apparaît

  • Une extension ou un thème utilise une fonction de traduction (__(), _e(), esc_html__()…) dès son chargement, par exemple pour préparer ses réglages, au lieu d’attendre l’action init.
  • L’extension n’a pas encore été adaptée à ce contrôle de WordPress 6.7, ou votre version est antérieure à sa correction.
  • Le débogage de WordPress (WP_DEBUG) est actif avec affichage à l’écran : sans cela, l’avis reste invisible.
  • Un code personnalisé, dans functions.php ou une extension maison, appelle load_plugin_textdomain() ou une traduction en dehors de tout crochet.

Comment corriger le problème

Trouver l’extension derrière le nom de domaine

Le domaine est un identifiant court : woocommerce pour WooCommerce, wordpress-seo pour Yoast SEO, astra pour le thème Astra. Il correspond presque toujours au nom d’un dossier dans wp-content/plugins ou wp-content/themes. Le fichier wp-includes/functions.php qui termine le message n’est pas en cause : c’est seulement là que WordPress émet l’avis.

Mettre à jour l’extension ou le thème

La plupart des éditeurs ont corrigé ce point. Mettez à jour l’élément concerné ainsi que WordPress, puis rechargez la page. Si l’avis persiste avec la dernière version, signalez-le à l’éditeur en recopiant le message complet.

Retirer l’avis de l’écran, pas du journal

Affichés en haut des pages, ces messages peuvent aussi perturber l’administration, par exemple en provoquant l’erreur « headers already sent ». Dans wp-config.php, adaptez les lignes de débogage existantes : plus rien ne s’affiche, et les avis restent notés dans wp-content/debug.log jusqu’à la correction. Une fois l’extension corrigée, repassez WP_DEBUG à false : ce fichier est consultable depuis le web sur bien des hébergements, il ne doit pas grossir indéfiniment.

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );

Charger les traductions au bon moment

Dans votre propre code, ne traduisez rien au moment où le fichier est lu : placez ces appels dans une fonction accrochée à init, ou plus tard. Les extensions hébergées sur WordPress.org n’ont d’ailleurs plus besoin d’appeler load_plugin_textdomain() : WordPress charge leurs traductions de lui-même.

add_action( 'init', function () {
	register_post_type( 'projet', array(
		'label'  => __( 'Projets', 'mon-extension' ),
		'public' => true,
	) );
} );

Gardez une copie de wp-config.php avant d’y toucher, et ne modifiez jamais wp-includes/functions.php pour faire disparaître l’avis : la prochaine mise à jour de WordPress effacerait ce changement.

Un autre message d'erreur ? Collez-le dans le décodeur : il le reconnaît et vous oriente vers la bonne fiche.

Ouvrir le décodeur