Ce sujet est résolu. Voici une description du problème et de la solution.
Problème : Le client a rencontré un problème où la page principale ne s'affichait pas en version anglaise, malgré le fait que la page soit bien traduite. De plus, il y avait des erreurs dans le code PHP utilisé pour afficher des images, ce qui causait des problèmes de traduction et d'affichage des images en anglais.
Solution : Nous avons identifié que le problème provenait de l'utilisation incorrecte des champs ACF dans le code PHP, notamment avec l'utilisation de
$image1['url']
qui n'est pas sûr avec PHP 8.0 et versions ultérieures. Nous avons proposé une version améliorée du code pour gérer correctement les différents types de retours du champ 'Image' d'ACF (tableau, chaîne de caractères, entier). Voici le code corrigé :
Nous avons également recommandé de supprimer le fichier debug_log de 18 Go dans le dossier wp-content si le client n'en a plus besoin. Nous avons souligné que ce code est personnalisé et que normalement, nous ne fournissons pas d'assistance pour de tels cas. Le client ou son développeur doit s'assurer que le code ajouté est compatible avec WPML.
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 d'assistance.
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.
Bonjour,
ma page principale ne s'affiche pas en version EN, le site existe depuis longtemps et ce problème est récent.
la page existe bien, elle est traduite...
Merci d'avance pour votre aide
Les langues: Anglais (English )Français (Français )Arabe (العربية )
Fuseau horaire: Pacific/Easter (GMT-06:00)
Bonjour,
Il semble que la page rencontre une erreur critique ; une erreur a donc dû être enregistrée en interne, ce qui pourrait expliquer ce problème.
J'aimerais vous demander un accès temporaire au wp-admin et au FTP de votre site, ce qui me permettra de trouver ces informations pour vous,
Il est important de noter que vous devez sauvegarder votre site et votre base de données avant de procéder, et vous pouvez utiliser un plugin comme Duplicator à cette fin. Voici un lien vers ce plugin : http://wordpress.org/plugins/duplicator/
Si vous ne voyez pas le formulaire ci-dessous, n'entrez pas vos informations d'identification, car elles seront exposées publiquement :
lien caché
Pour des raisons de confidentialité et de sécurité, veillez à ce que votre réponse soit privée.
Les langues: Anglais (English )Français (Français )Arabe (العربية )
Fuseau horaire: Pacific/Easter (GMT-06:00)
Le plantage n'est pas dû à WPML, WP Rocket ou aux avertissements de dépréciation.
L'erreur fatale est causée par l'exécution d'un code PHP personnalisé via le plugin insert-php (Woody Code Snippets), et ce code plante à la ligne 38 du snippet lui-même :
Erreur fatale PHP : TypeError non interceptée : impossible d'accéder à l'offset de type chaîne sur une chaîne
...
/wp-content/plugins/insert-php/includes/shortcodes/shortcode-php.php(64) : code eval() à la ligne 38
Ce que cela signifie :
insert-php utilise eval() pour exécuter un snippet PHP enregistré.
En résumé, cette page contient un shortcode/snippet Insert PHP, et le code PHP à l'intérieur de ce snippet est incompatible avec le type de données actuel / la version PHP.
Je soupçonne qu'un code personnalisé a été ajouté à votre en-tête ou quelque chose de similaire, cela vous dit-il quelque chose ?
Si tu veux, je peux faire une copie de votre site et régler ce problème en local,
Bonjour,
Oui il y a un bout de code en PHP + JS qui s'éxécute sur la page. Il gére le caroussel de vignerons vers le bas de la page.
Mais, ce code est le même sur la page en Français et en Anglais, et il ne bloque que la page en anglais, d'ou ma demande à votre support...
Merci d'avance!
Les langues: Anglais (English )Français (Français )Arabe (العربية )
Fuseau horaire: Pacific/Easter (GMT-06:00)
Bonjour,
Désolé pour le retard, cela a demandé un peu plus de temps pour le débogage car il s'agit d'un travail sur mesure,
Je suis en train de télécharger une copie de votre site et de l'envoyer à nos développeurs ; je vous recontacterai avec plus de détails dès que possible,
Bonjour,
j'ai supprimé des sauvegardes mais beaucoup était stocké sur un drive google. Sinon, sur l'hébergement il reste beaucoup de place (voire l'image).
Dites moi si c'est mieux.
Cordialement.
un tableau (contenant l'URL) — « Tableau d'images »
une chaîne de caractères (URL) — « URL de l'image »
un entier (ID de la pièce jointe) — « ID de l'image »
S'il s'agit d'une chaîne, $image1[“url”] tente d'utiliser un décalage de chaîne avec la clé « url », ce qui déclenche l'erreur : impossible d'accéder à l'offset de type chaîne sur une chaîne.
Le français et l'anglais diffèrent souvent car les traductions ou les copies de champs n'ont pas le même format de retour, ou parce que certains articles ne contiennent qu'une URL.
Autres problèmes dans l'extrait de code
$id n'est jamais défini — utilisez get_the_ID() dans la boucle pour wpml_object_id.
var_dump($orgid) — supprimez-le de la version de production.
wp_reset_query() — avec le nouveau WP_Query, préférez wp_reset_postdata().
Grâce à l'IA, j'ai pu vous proposer une meilleure version de cet extrait de code qui a fonctionné pour moi sur le site local :
Remarque : il s'agit d'un code personnalisé pour lequel nous n'assurons généralement pas d'assistance. Considérez donc ma solution comme un exemple : c'est à vous ou à votre développeur qu'il revient d'ajouter des codes compatibles avec WPML.
Autre remarque : dans le dossier wp-content, vous trouverez un fichier debug_log d'une taille de 18 Go. Vous devriez supprimer ce fichier si vous n'avez plus besoin de ces journaux.
Bonjour,
Merci beaucoup pour votre aide!
J'ai dupliqué votre code, effectivement sur la page en français tout fonctionne, mais sur la page en angais je n'ai plus les traductions de texte... Est-ce que vous avez remplacé la version en anglais pas la version en français?
Sinon, je ferais une restauration de la base de données.
Merci pour votre aide, si vous pouvez regarder pourquoi la traduction a sauté sur la page d'accueil, ce serait bien.
Cordialement
J'ai donc fait une restauration pour revenir à l'état avant que vous ne modifiez les pages du sites. j'ai pris votre code que j'ai du modifier un peu (les images ne s'affichait pas en anglais) et j'ai tout mis en place, ça fonctionne!
Merci pour votre aide!