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 :
Le client ne peut pas sauvegarder la page d'administration de la page d'accueil en polonais sur leur site WordPress. L'erreur retournée est "La mise à jour a échoué. La réponse n’est pas une réponse JSON valide."
Solution :
Nous avons identifié que le problème survient lorsque le plugin WPRocket est actif en même temps que le plugin permalink-manager. Un conflit est également détecté dans le fichier

/wp-content/themes/sur-mesure/functions.php

à cause d'un champ Advanced Custom Fields qui interagit incorrectement avec le gestionnaire de permaliens. Pour résoudre ce problème, nous recommandons de commenter ou de réviser le code dans le fichier functions.php, spécifiquement la fonction

pm_fix_language_mismatch

.

Si cette solution ne résout pas votre problème ou semble dépassée, nous vous conseillons de vérifier les problèmes connus et de vous assurer que vous utilisez les versions les plus récentes des thèmes et plugins. Si le problème persiste, n'hésitez pas à ouvrir un nouveau ticket 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 14 réponses, a 1 voix.

Dernière mise à jour par Ilyes Il y a 12 heures et 7 minutes.

Assisté par: Ilyes.

Auteur Messages
décembre 1, 2025 à 1:25 pm #17622703

vincentH-17

Nous avons traduit automatiquement en polonais le site lien caché
Pour l'instant nous masquons les langues que nous n'avons pas terminé de vérifier.

Pour une raison que nous ignorons, il nous est impossible de sauvegarder la page d'administration de la page d'accueil en polonais : lien caché

Wordpress nous renvoie l'erreur suivante :
"La mise à jour a échoué. La réponse n’est pas une réponse JSON valide. "

décembre 1, 2025 à 1:56 pm #17622780

vincentH-17

Bonjour,

Nous avions eu quelqu'un une première fois sur le chat, mais la connexion a coupé.
Pouvons-nous avoir du support sur ce sujet svp ?

D'avance merci,
Cordialement

décembre 2, 2025 à 1:25 am #17624289

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-05:00)

Bonjour,

Merci d'avoir contacté l'équipe d'assistance WPML.

En général, le json non valide se produit si vous avez des données supplémentaires qui ne sont pas attendues. Cela peut être dû à un HTACCESS personnalisé, à des erreurs ou à un code personnalisé.

Tout d'abord, je vous recommande d'augmenter la valeur de WP_MEMORY_LIMIT à au moins 256M (vous avez actuellement 40M).

Vous devez ajouter la ligne suivante dans votre fichier wp-config.php, ajoutez-la avant la ligne /* C'est tout, n'éditez plus ! Bonne publication. */

define( "WP_MEMORY_LIMIT", "256M" );

Si le problème persiste, je vous suggère de faire un test en activant d'abord le debug_log pour voir si des erreurs visibles apparaissent avec des logs détaillés.

Je peux m'en occuper pour vous si vous pouvez me donner accès à votre site.

décembre 3, 2025 à 2:13 am #17628936

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-05:00)

Bonjour,

La solution semble être de réenregistrer la traduction à partir de l'éditeur de traduction WPML : lien caché

Je ne comprends pas bien l'intérêt de cette sauvegarde. Modifiez-vous la page en polonais directement dans l'éditeur WordPress ? Si tel est le cas, je vous recommande de ne pas modifier la traduction en polonais (ou toute autre traduction) à l'aide du constructeur de site si vous avez utilisé la traduction automatique.

Le fait de mélanger plusieurs éditeurs peut entraîner des erreurs, voire la perte de traductions. Utilisez une seule méthode pour modifier et traduire votre contenu.

décembre 3, 2025 à 9:31 am #17629792

vincentH-17

Je comprends pour ce qui concerne les conflits d'éditeurs.
En revanche, la page d'accueil en version polonais ne s'affiche toujours pas correctement, même traduite via l'éditeur : lien caché

Les blocs ne sont pas chargés.

Pour les langues ES et IT traduites automatiquement, le problème ne se pose pas.

Pourriez-vous vérifier svp ?

décembre 3, 2025 à 3:54 pm #17631581

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-05:00)

Bonjour,

J'ai retraduit la page à partir de zéro et le contenu se charge dans le backend, mais le frontend continue d'afficher l'élément svg : lien caché

Il semble que la page polonaise redirige vers une erreur 404. Lorsque je masque l'élément d'en-tête (logo qui s'affiche en premier à l'ouverture d'une page), le message suivant s'affiche : lien caché

Lorsque je duplique la page polonaise et que je la prévisualise, la traduction s'affiche sans problème : lien caché

Je voudrais exécuter cela dans un environnement minimal (désactiver tous les plugins sauf ACF et WPML) afin d'éliminer les conflits.

Je peux faire une copie de votre site et travailler dessus localement, faites-moi savoir si cela vous convient.

Cordialement,

décembre 5, 2025 à 8:11 am #17637021

vincentH-17

Bonjour,

Oui je veux bien si possible.

D'avance merci,
Cordialement

décembre 5, 2025 à 4:26 pm #17639338

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-05:00)

Bonjour,

Il semble que ce soit un problème lié au thème, car vous utilisez un thème personnalisé. Je vais devoir transmettre cette information à nos développeurs, car les modèles ne peuvent pas se charger correctement dans d'autres langues.

Je vous tiendrai au courant dès que j'aurai des nouvelles.

décembre 8, 2025 à 4:42 pm #17644917

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-05:00)

Bonjour,

Il y a une requête REST vers /pl/wp-json/wp/v2/pages/17281?_locale=user pour enregistrer la page.
Ceci est incorrect.
Nous avons remonté la piste jusqu'à votre thème dans /wp-content/themes/sur-mesure/includes/functionsPHP/filters_removal.php

    // Disable REST API link in HTTP headers
    remove_action('template_redirect', 'rest_output_link_header', 11, 0);

Qui est à l'origine du problème.

Autre source de préoccupation concernant les paramètres PHP par défaut :

[08-Dec-2025 07:53:15 UTC] PHP Parse error:  Unclosed '{' on line 61 in /var/www/html/web/wp-content/themes/sur-mesure/includes/ACF/template-blocks/content-home-experiences.php on line 98

C'est parce que vous avez :

<? } ?>

Au lieu de :

<?php } ?>

Êtes-vous toujours en contact avec les développeurs de votre thème/site ? Si oui, pourriez-vous leur faire part de nos conclusions ?

décembre 9, 2025 à 8:34 am #17646086

vincentH-17

Bonjour,

Merci pour votre analyse.
Nous avons corrigé ces éléments, mais le problème de sauvegarde et d'affichage de la page PL subsiste toujours.

Pouvez-vous vérifier ?
D'avance merci,

Cordialement

décembre 9, 2025 à 1:40 pm #17647963

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-05:00)

Bonjour,

Merci d'avoir essayé les modifications, nous allons continuer à déboguer un peu plus, nous avons peut-être raté une autre partie du code à modifier.

décembre 9, 2025 à 2:36 pm #17648146

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-05:00)

Bonjour,

Localement, je ne vois rien d'autre.
Quelque chose réécrit probablement l'URL d'accueil pour la requête REST afin d'enregistrer la page.

Maintenant, pourquoi cela fonctionne pour « de » et « es », mais pas pour « pl » ? Il est possible que cela provienne du cache WPRocket, car je l'ai désactivé localement.

Une solution temporaire pourrait être d'ajouter une règle de réécriture :

<IfModule mod_rewrite.c>
RewriteEngine On
# Internally rewrite /pl/wp-json/... to /wp-json/...
RewriteRule ^pl/wp-json/(.*)$ /wp-json/$1 [L]
</IfModule>

Si cela n'a pas aidé, avez-vous peut-être un site de test/staging présentant le même problème ?

décembre 9, 2025 à 3:45 pm #17648648

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-05:00)

Rebonjour,

Nous avons reproduit le problème lorsque nous avons activé WPRocket localement.
Je constate quelque chose d'étrange lorsque WPRocket est actif et que le plugin permalink-manager est installé.

Nous avons également remarqué quelque chose d'étrange dans le thème /wp-content/themes/sur-mesure/functions.php.

add_filter('permalink_manager_detected_post_id', 'pm_fix_language_mismatch', 7, 3);
function pm_fix_language_mismatch($item_id, $uri_parts, $is_term = false)
{
    $redirect404 = true;

    if (!$is_term) {
        $element = get_post($item_id);

        if (!empty($element->post_type)) {
            $element_id = $item_id;
            $element_type = $element->post_type;
        }
    }

    // Stop if no term or post is detected
    if (empty($element)) {
        return false;
    }

    // Get the language code of the found post/term
    $element_language_code = Permalink_Manager_Language_Plugins::get_language_code($element);

    // Get the detected language code
    if (defined('ICL_LANGUAGE_CODE')) {
        $detected_language_code = ICL_LANGUAGE_CODE;
    } else if (!empty($uri_parts['lang'])) {
        $detected_language_code = $uri_parts['lang'];
    } else {
        return $item_id;
    }

    if ($detected_language_code !== $element_language_code) {
        $item_id = apply_filters('wpml_object_id', $element_id, $element_type);

        if (!empty($item_id)) {
            $canonical_permalink = get_permalink($item_id);

            //test si canonical permalink correspond à l'URI demandé. Si true alors URL existe
            $pattern = '/\/' . preg_quote($uri_parts["uri"],"/") . '(#{0,1})(\?.*){0,1}$/';
            $return_preg = preg_match($pattern, $canonical_permalink);

            if ($return_preg) {
                return $item_id;
            }

            if ($redirect404) {
                global $wp_query;
                $wp_query->set_404();
                status_header(404);
                get_template_part(404);
                exit();
            } else {
                wp_safe_redirect($canonical_permalink, 301);
                exit();
            }
        }
    }

    return $item_id;
}

En raison d'un champ Advanced Custom Fields qui contient un lien vers un champ de gestionnaire de permaliens, il tente d'ajuster le lien, mais à cause de cet appel, il ajuste la requête elle-même lors de l'appel à l'API REST.
Voici le contenu de l'ACF :

Witajcie na pokładzie naszego <strong>kempingu w Vias</strong>! Californie Plage wita Was w rodzinnej atmosferze na terenie wyjątkowo zielonym, gdzie natura odgrywa główną rolę.

Położony nad Morzem Śródziemnym, nasz luksusowy <a href="<em><u>lien caché</u></em>">kemping w pobliżu Portiragnes</a> ma wiele atutów, w tym <strong>niesamowity park wodny w tematyce pirackiej</strong>, <a href="<em><u>lien caché</u></em>">domki mobilne w Vias</a> tuż przy plaży, idealnie usytuowane <a href="<em><u>lien caché</u></em>">miejsca kempingowe w Vias</a>, wspaniałe przestrzenie gastronomiczne oraz wiele innych usług ułatwiających codzienne życie.

Przez cały pobyt w naszym <strong>4-gwiazdkowym kempingu w Vias-Plage</strong> organizujemy również różne animacje i aktywności. Wszystko po to, aby cała rodzina mogła się bawić i cieszyć podczas wakacji w Hérault w naszym <a href="https:/example.com/camping-cap-d-agde.html">kempingu blisko Cap d'Agde</a>! 

Le gestionnaire de permaliens récupère donc : camping-portiragnes.html et la fonction « tente d'ajuster la discordance linguistique », car l'URL est en français, mais doit être ajustée pour le polonais. La logique échoue et c'est là que réside le problème.

Ma nouvelle suggestion : commenter et réviser le code dans /wp-content/themes/sur-mesure/functions.php pour la fonction : \pm_fix_language_mismatch

décembre 10, 2025 à 11:35 am #17651964

vincentH-17

Merci beaucoup ! Cela résout effectivement le problème de sauvegarde et d'affichage !
Le problème est réglé en désactivant ce hook.
Bonne journée, merci encore

décembre 10, 2025 à 12:37 pm #17652246

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-05:00)

Bonjour,

Merci pour votre suivi. N'hésitez pas à nous faire part de toute autre question. Je vais maintenant marquer ce ticket comme résolu.