よくある問題予期しない文字列エスケープ文字 '&'
予期しない文字列エスケープ文字 '&'
次のエラーメッセージが表示された場合:
Unexpected string escaped character '&'...例えばこのように:
{"message":"Unexpected string escaped character '&'","locations":[{"line":2596,"column":87}],"extensions":{"code":"gqlparser@4","specifiedBy":"https://spec.graphql.org/draft/#sec-Language"}}解決策は:プラグインを無効化してから再度有効化することです。
その後、DBキャッシュプラグインを使用している場合は、DBキャッシュをフラッシュする必要もあります。
問題の説明
この問題の原因は、GraphQLクエリ "translate-customposts" がデータベースに誤って保存されていることです。
これはプラグインを初めてインストールしたときにのみ発生し、かつライセンスが事前に提供されていた場合にのみ起こるため、このエラーは非常にまれです。
何らかの理由(私たちにも不明な理由)で、WordPressがクエリを保存する際にその内容を破損させることがあります。
元のクエリは次のようになっているにもかかわらず:
@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はDBに次のように保存します:
@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",
)プラグインを無効化して再度有効化すると、クエリがデータベースに再保存され、問題が解決されます。