Onverwacht escaped teken in string '&'
Als je dit foutbericht ziet:
Unexpected string escaped character '&'...zoals hier:
{"message":"Unexpected string escaped character '&'","locations":[{"line":2596,"column":87}],"extensions":{"code":"gqlparser@4","specifiedBy":"https://spec.graphql.org/draft/#sec-Language"}}De oplossing is: deactiveer en reactiveer de plugin.
Als je dat hebt gedaan en je hebt een DB-cacheplugin, moet je ook de DB-cache leegmaken.
Uitleg van het probleem
De oorzaak van het probleem is dat de GraphQL query "translate-customposts" foutief is opgeslagen in de database.
Dit lijkt alleen te gebeuren bij de eerste installatie van de plugin, en alleen als de licentie van tevoren was opgegeven, dus deze fout is zeer zeldzaam.
Om een of andere reden (die ons ontgaat) kan WordPress de inhoud van de query beschadigen bij het opslaan.
Hoewel de originele query er zo uitziet:
@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",
)...slaat WordPress het als volgt op in de database:
@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",
)Na het deactiveren en opnieuw activeren van de plugin wordt de query opnieuw opgeslagen in de database en is het probleem opgelost.