Problèmes courants
Problèmes courantsCaractère de chaîne échappée inattendu '&'

Caractère de chaîne échappée inattendu '&'

Si vous voyez ce message d'erreur :

Unexpected string escaped character '&'

...comme ici :

{"message":"Unexpected string escaped character '&'","locations":[{"line":2596,"column":87}],"extensions":{"code":"gqlparser@4","specifiedBy":"https://spec.graphql.org/draft/#sec-Language"}}

La solution est : désactivez et réactivez le plugin.

Après avoir fait cela, si vous avez un plugin de cache BDD, vous devez également vider le cache BDD.

Explication du problème

La source du problème est que la query GraphQL "translate-customposts" a été stockée de manière erronée dans la base de données.

Cela semble se produire uniquement la première fois que le plugin est installé, et uniquement si la licence avait été fournie à l'avance, donc cette erreur est très rare.

Pour une raison quelconque (qui nous échappe), WordPress peut corrompre le contenu de la query lors de son stockage.

Même si la query originale se lit ainsi :

    @underJSONObjectProperty(
      by: { key: "coreMediaTextAlt" }
      affectDirectivesUnderPos: [1, 6]
    )
      @underJSONObjectProperty(
        by: { key: "from" }
        affectDirectivesUnderPos: [1, 4],
      )
        @underEachJSONObjectProperty
          @underEachArrayItem(
            passValueOnwardsAs: "value"
          )
            @applyField(
              name: "_sprintf",
              arguments: {
                string: "#(<!-- wp:media-text .*?-->\\n?<div .*><figure .*><img .*?alt=\\\")%s(\\\")#",
                values: [$value]
              },
              setResultInResponse: true
            )
        @export(
          as: "coreMediaTextAltReplacementsFrom",
        )
      @underJSONObjectProperty(
        by: { key: "to" }
      )
        @export(
          as: "coreMediaTextAltReplacementsTo",
        )

...WordPress la stocke dans la BDD comme ceci :

    @underJSONObjectProperty(
      by: { key: "coreMediaTextAlt" }
      affectDirectivesUnderPos: [1, 6]
    )
      @underJSONObjectProperty(
        by: { key: "from" }
        affectDirectivesUnderPos: [1, 4],
      )
        @underEachJSONObjectProperty
          @underEachArrayItem(
            passValueOnwardsAs: "value"
          )
            @applyField(
              name: "_sprintf",
              arguments: {
                string: "#(<!-- wp:media-text .*?-->\\n?<div><figure>&lt;img .*?alt=\\\&quot;)%s(\\\&quot;)#&quot;,
                values: [$value]
              },
              setResultInResponse: true
            )
        @export(
          as: &quot;coreMediaTextAltReplacementsFrom&quot;,
        )
      @underJSONObjectProperty(
        by: { key: &quot;to&quot; }
      )
        @export(
          as: &quot;coreMediaTextAltReplacementsTo&quot;,
        )

En désactivant et en réactivant le plugin, la query est de nouveau sauvegardée dans la base de données, et le problème est résolu.