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><img .*?alt=\\\")%s(\\\")#",
values: [$value]
},
setResultInResponse: true
)
@export(
as: "coreMediaTextAltReplacementsFrom",
)
@underJSONObjectProperty(
by: { key: "to" }
)
@export(
as: "coreMediaTextAltReplacementsTo",
)Ao desativar e reativar o plugin, a query é salva novamente no banco de dados e o problema é corrigido.