Passer au contenu Passer à la barre latérale

Ce sujet est résolu. Voici une description du problème et de la solution.

Problème :
Vous rencontrez une erreur critique WordPress lors de la traduction d'une fiche produit sur votre site WordPress. L'erreur indique que la fonction

_load_textdomain_just_in_time

a été appelée incorrectement, et que le chargement des traductions a été déclenché trop tôt, probablement à cause d'un code dans le plugin ou le thème qui s'exécute trop tôt.
Solution :
Nous avons identifié que le thème GeneratePress permet de spécifier si les éléments doivent exécuter du PHP. Si vous n'avez pas besoin que certains éléments exécutent du PHP, assurez-vous que l'exécution du PHP est désactivée dans les paramètres de chaque élément. Vous pouvez trouver plus de détails dans la documentation de GeneratePress ici : Hooks Element Overview.
De plus, vérifiez dans les paramètres de traduction des champs personnalisés de WPML que le champ

_generate_hook_execute_php

est correctement configuré à 'false' si l'exécution du PHP n'est pas nécessaire. Si ce n'est pas le cas, vous pouvez désactiver globalement cette option en ajoutant le filtre suivant à votre code :

add_filter( 'generate_hooks_execute_php', '__return_false' );

Cette action devrait résoudre l'erreur si vous n'envisagez pas d'autoriser l'exécution de code PHP dans les éléments.

Si cette solution ne résout pas votre problème ou semble dépassée, nous vous recommandons de vérifier les problèmes connus, de confirmer que vous avez installé les dernières versions des thèmes et plugins, et si nécessaire, d'ouvrir un nouveau ticket de support sur notre forum de support.

Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.

Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.

Marqué : 

Ce sujet contient 0 réponse, a 0 voix.

Dernière mise à jour par Bruno Kos Il y a 7 mois et 1 semaine.

Assisté par: Bruno Kos.

Auteur Messages
janvier 27, 2025 à 8:06 am

sabrinaC-7

Contexte de la question:
Je tente de traduire une fiche produit sur mon site WordPress. Lorsqu'une fiche produit est traduite, sa traduction affiche une erreur critique WordPress. Voici le lien vers la page où le problème peut être vu : lien caché

Symptômes:
Une erreur critique WP s'affiche lors de la traduction d'une fiche produit. Le journal de débogage indique : PHP Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo 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 init action or later.

Questions:
Pourquoi ma fiche produit traduite affiche-t-elle une erreur critique ?
Comment résoudre l'erreur critique liée à la traduction de la fiche produit ?

janvier 27, 2025 à 8:46 am
janvier 27, 2025 à 11:20 am #16637366

Bruno Kos
Partisan de WPML depuis 12/2018

Les langues: Anglais (English ) Allemand (Deutsch ) Français (Français )

Fuseau horaire: Europe/Zagreb (GMT+02:00)

Je suis en train de vérifier cela avec notre deuxième niveau et je vous tiendrai au courant.

janvier 27, 2025 à 12:56 pm #16637791

Bruno Kos
Partisan de WPML depuis 12/2018

Les langues: Anglais (English ) Allemand (Deutsch ) Français (Français )

Fuseau horaire: Europe/Zagreb (GMT+02:00)

Après avoir examiné le code source du plugin lié à l’erreur, il semble que GeneratePress vous permette de spécifier si les éléments doivent exécuter du PHP ou non. L’erreur se produit dans des scénarios où l’exécution du PHP est activée. Vous trouverez plus de détails dans la documentation ici : [Hooks Element Overview](lien caché).

Puis-je confirmer si vous souhaitez que certains éléments exécutent du PHP ? Si ce n’est pas le cas, je recommande de vérifier les paramètres de chaque élément et de vous assurer que l’exécution du PHP est désactivée. Bien que je n’aie pas trouvé d’instructions explicites dans la documentation, il est suggéré que cela peut être configuré dans les paramètres de GeneratePress.

De plus, il est important de s’assurer que les éléments traduits conservent le même paramètre. Dans les paramètres de traduction des champs personnalisés de WPML, j’ai trouvé un champ nommé `_generate_hook_execute_php`, actuellement défini sur "Copier une seule fois". Cela signifie que la mise à jour de la traduction ne modifiera pas ce champ s’il a été défini par erreur sur `true` au lieu de `false`. Pour résoudre ce problème, il serait nécessaire de modifier directement l’élément traduit afin de mettre à jour ce paramètre à `false`.

Sinon, si l’exécution du PHP n’est pas requise pour aucun élément, vous pouvez désactiver globalement cette option en ajoutant le filtre suivant à votre code :

add_filter( 'generate_hooks_execute_php', '__return_false' );

L’implémentation de ce filtre devrait résoudre le problème si vous n’envisagez pas d’autoriser l’exécution de code au sein des éléments.

Par ailleurs, si certains de ces éléments n'ont pas encore été traduits (icône d'engrenage qui indique qu'ils sont en cours de traduction), pouvez-vous les traduire?