Problemas comuns
Problemas comunsCaractere de string com escape inesperado '&'

Caractere de string com escape inesperado '&'

Se você ver esta mensagem de erro:

Unexpected string escaped character '&'

...como aqui:

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

A solução é: desativar e reativar o plugin.

Depois de fazer isso, se você tiver algum plugin de cache do banco de dados, também deverá limpar o cache do banco de dados.

Explicação do problema

A origem do problema é que a query GraphQL "translate-customposts" foi armazenada de forma incorreta no banco de dados.

Parece ocorrer apenas na primeira vez que o plugin é instalado, e somente se a licença tiver sido fornecida com antecedência, portanto esse erro é muito raro.

Por alguma razão (que nos escapa), o WordPress pode corromper o conteúdo da query ao armazená-la.

Embora a query original seja assim:

    @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",
        )

...o WordPress a armazena no banco de dados assim:

    @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;,
        )

Ao desativar e reativar o plugin, a query é salva novamente no banco de dados e o problema é corrigido.