Распространённые проблемы
Распространённые проблемыНеожиданный экранированный символ строки '&'

Неожиданный экранированный символ строки '&'

Если вы видите это сообщение об ошибке:

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"}}

Решение: деактивируйте и повторно активируйте плагин.

После этого, если у вас установлен какой-либо плагин кэша БД, необходимо также очистить кэш БД.

Объяснение проблемы

Причина проблемы в том, что 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 сохраняет его в БД следующим образом:

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

При отключении и повторном включении плагина запрос заново сохраняется в базе данных, и проблема устраняется.