Π‘Π»ΠΎΠ³

πŸš€ Π’Ρ‹ΠΏΡƒΡ‰Π΅Π½ Gato GraphQL v1.2 (с Π½ΠΎΠ²Ρ‹ΠΌΠΈ Persisted Queries)

Leonardo Losoviz
Автор: Leonardo Losoviz Β·

Π’Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° вСрсия 1.2 Gato GraphQL! πŸŽ‰

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ описаниС всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ нСсколько ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Persisted Queries

Π’Π΅ΠΏΠ΅Ρ€ΡŒ доступны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Persisted Queries для выполнСния распространённых Π·Π°Π΄Π°Ρ‡ администрирования:

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΏΠΎ URL

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² Π½Π° Π²Ρ…ΠΎΠ΄ URL, язык источника ΠΈ язык ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°, этот query ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΏΠΎ URL ΠΈ выполняСт ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Google Translate:

query TranslateContent(
  $url: URL!
  $fromLang: String!
  $toLang: String!
) {
  _sendHTTPRequest(input: {
    url: $url,
    method: GET
  }) {
    body
    translated: body @strTranslate(
      from: $fromLang
      to: $toLang
    )
  }
}

НапримСр, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² URL Markdown-Ρ„Π°ΠΉΠ»Π° ΠΈΠ· рСпозитория GitHub ΠΈ ΠΊΠΎΠ΄ языка "es":

{
  "url": "https://raw.githubusercontent.com/GatoGraphQL/GatoGraphQL/c870d8906ae1aec3c81acc039c53acc7aab5dff0/layers/GatoGraphQLForWP/plugins/gatographql/docs/modules/single-endpoint/en.md",
  "fromLang": "en",
  "toLang": "es"
}

...Markdown-ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½ Π½Π° испанский язык:

{
  "data": {
    "_sendHTTPRequest": {
      "body": "# Single Endpoint\n\nExecute queries against the GraphQL server through the public single endpoint.\n\nBy default the endpoint is `/graphql/`, and the path can be configured through the Settings.\n\n![Single endpoint in Settings](/assets/guides/upstream/settings-single-endpoint.webp \"Single endpoint in Settings\")\n\nThe GraphQL single endpoint can be configured by assigning a Schema Configuration to it. To do this, on section \"Schema Configuration\" select the desired entry from the dropdown for \"Schema Configuration for the Single Endpoint\":\n\n<div class=\"img-width-1024\" markdown="1">\n\n![Settings for the Schema Configuration for the Single Endpoint](/assets/guides/upstream/settings-schema-configuration-for-single-endpoint.webp)\n\n</div>\n\n## Clients\n\nInteract with the single endpoint via the available clients.\n\n### GraphiQL\n\nIf module \"GraphiQL for Single Endpoint\" is enabled, then the single endpoint's GraphiQL client becomes publicly available.\n\nTo open it, click on link \"🟒 GraphiQL (public)\" on the plugin's menu:\n\n<div class=\"img-width-1024\" markdown="1">\n\n![Single endpoint's link to the GraphiQL client](/assets/guides/upstream/single-endpoint-graphiql-link.webp)\n\n</div>\n\nBy default, the client is exposed under `/graphiql/`. This path can be modified on the Settings, under tab \"GraphiQL for Single Endpoint\":\n\n<div class=\"img-width-1024\" markdown="1">\n\n![Path to GraphiQL client](/assets/guides/upstream/settings-graphiql-for-single-endpoint.webp)\n\n</div>\n\n### Interactive Schema (Voyager)\n\nIf module \"Interactive Schema for Single Endpoint\" is enabled, then the single endpoint's Voyager client becomes publicly available.\n\nTo open it, click on link \"🟒 Schema (public)\" on the plugin's menu:\n\n<div class=\"img-width-1024\" markdown="1">\n\n![Single endpoint's link to the Interactive Schema client](/assets/guides/upstream/single-endpoint-interactive-schema-link.webp)\n\n</div>\n\nBy default, the client is exposed under `/schema/`. This path can be modified on the Settings, under tab \"Interactive Schema for Single Endpoint\":\n\n<div class=\"img-width-1024\" markdown="1">\n\n![Path to Voyager client](/assets/guides/upstream/settings-interactive-schema-for-single-endpoint.webp)\n\n</div>\n",
      "translated": "# Punto final único\n\nEjecute consultas en el servidor GraphQL a través del punto final único público.\n\nDe forma predeterminada, el punto final es `/graphql/` y la ruta se puede configurar a través de Configuración.\n\n![Punto final único en Configuración](/assets/guides/upstream/settings-single-endpoint.webp \"Punto final único en Configuración\")\n\nEl punto final único GraphQL se puede configurar asignÑndole una configuración de esquema. Para hacer esto, en la sección \"Configuración del esquema\", seleccione la entrada deseada del menú desplegable para \"Configuración del esquema para el punto final único\":\n\n<div class=\"img-width-1024\" descuento=1>\n\n![Configuración del esquema para el punto final único](/assets/guides/upstream/settings-schema-configuration-for-single-endpoint.webp)\n\n</div>\n\n## Clientes\n\nInteractúe con el punto final único a través de los clientes disponibles.\n\n### GrafiQL\n\nSi el módulo \"GraphiQL para punto final único\" estÑ habilitado, el cliente GraphiQL del punto final único estarÑ disponible públicamente.\n\nPara abrirlo, haga clic en el enlace \"🟒 GraphiQL (público)\" en el menú del complemento:\n\n<div class=\"img-width-1024\" descuento=1>\n\n![Enlace del punto final único al cliente GraphiQL](/assets/guides/upstream/single-endpoint-graphiql-link.webp)\n\n</div>\n\nDe forma predeterminada, el cliente estÑ expuesto en `/graphiql/`. Esta ruta se puede modificar en Configuración, en la pestaña \"GraphiQL para punto final único\":\n\n<div class=\"img-width-1024\" descuento=1>\n\n![Ruta al cliente GraphiQL](/assets/guides/upstream/settings-graphiql-for-single-endpoint.webp)\n\n</div>\n\n### Esquema interactivo (Voyager)\n\nSi el módulo \"Esquema interactivo para punto final único\" estÑ habilitado, el cliente Voyager del punto final único estarÑ disponible públicamente.\n\nPara abrirlo, haga clic en el enlace \"🟒 Esquema (público)\" en el menú del complemento:\n\n<div class=\"img-width-1024\" descuento=1>\n\n![Enlace del punto final único al cliente de esquema interactivo](/assets/guides/upstream/single-endpoint-interactive-schema-link.webp)\n\n</div>\n\nDe forma predeterminada, el cliente estÑ expuesto en `/schema/`. Esta ruta se puede modificar en Configuración, en la pestaña \"Esquema interactivo para punto final único\":\n\n<div class=\"img-width-1024\" descuento=1>\n\n![Ruta al cliente Voyager](/assets/guides/upstream/settings-interactive-schema-for-single-endpoint.webp)\n\n</div>\n"
    }
  }
}

Π­Ρ‚ΠΎΡ‚ query Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² Ρ€Π°Π·Π΄Π΅Π» Recipes ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«Translating content from URLΒ».

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ записи (классичСский Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€) ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ записСй (классичСский Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€)

Π Π°Π½Π΅Π΅ ΡƒΠΆΠ΅ сущСствовали persisted queries Β«Translate postΒ» ΠΈ Β«Translate postsΒ» (массово), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° всСх свойств Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠΎΠ² Gutenberg Π² записи.

Они Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Ρ‹ Π² Β«Translate post (Gutenberg)Β» ΠΈ Β«Translate posts (Gutenberg)Β», Π° для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Π² классичСском Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ persisted queries:

  • Translate post (Classic editor): ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠΉ записи
  • Translate posts (Classic editor): ΠœΠ°ΡΡΠΎΠ²Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… записСй

ВсС эти queries пСрСводят ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, вызывая Google Translate API ΠΈ отправляя всС Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ запроса.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ query Β«Translate posts (Classic editor)Β» для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° 5 записСй, всС Π΄Π°Π½Π½Ρ‹Π΅ (Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈ excerpt) для всСх 5 записСй ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ вмСстС, обСспСчивая Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ контСкст ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°.

НапримСр, послС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° этой записи с английского Π½Π° китайский:

Π—Π°ΠΏΠΈΡΡŒ Π½Π° английском
Π—Π°ΠΏΠΈΡΡŒ Π½Π° английском

...ΠΎΠ½Π° стала Ρ‚Π°ΠΊΠΎΠΉ:

Π—Π°ΠΏΠΈΡΡŒ, пСрСвСдённая Π½Π° китайский
Π—Π°ΠΏΠΈΡΡŒ, пСрСвСдённая Π½Π° китайский

Π˜ΠΌΠΏΠΎΡ€Ρ‚ записи ΠΈΠ· RSS-Π»Π΅Π½Ρ‚Ρ‹ WordPress

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ RSS-Π»Π΅Π½Ρ‚Ρƒ WordPress для записи, ΠΈ Π½Π° Π΅Ρ‘ основС Π±ΡƒΠ΄Π΅Ρ‚ создана новая запись с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

НапримСр, query Ρ€Π°Π·Π±Π΅Ρ€Ρ‘Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ RSS-Π»Π΅Π½Ρ‚Ρƒ для ΠΎΠ΄Π½ΠΎΠΉ записи (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΏΠΎ адрСсу https://mysite.com/post-slug/feed/rss/?withoutcomments=1):

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>
  <channel>
    <title>A tale of two cities &#8211; teaser &#8211; PoP API Demo</title>
    <atom:link href="https://mysite.com/blogroll/a-tale-of-two-cities-teaser/feed/?withoutcomments=1" rel="self" type="application/rss+xml" />
    <link>https://mysite.com</link>
    <description>Just another WordPress site</description>
    <lastBuildDate>Tue, 20 Jul 2021 23:03:59 +0000</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1	</sy:updateFrequency>
    <generator>https://wordpress.org/?v=6.1.1</generator>
    <item>
      <title>A tale of two cities &#8211; teaser</title>
      <link>https://mysite.com/blogroll/a-tale-of-two-cities-teaser/</link>
      <comments>https://mysite.com/blogroll/a-tale-of-two-cities-teaser/#comments</guides/query/comments>
      <dc:creator>leo</dc:creator>
      <pubDate>Mon, 21 Dec 2020 08:24:18 +0000</pubDate>
      <category>Blogroll</category>
      <category>championship</category>
      <category>book</category>
      <guid isPermaLink="false">https://mysite.com/?p=1657</guid>
      <description></description>
      <content:encoded>
<p>It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness, it was the epoch of belief, it was the epoch of incredulity, it was the season of Light, it was the season of Darkness, it was the spring of hope, it was the winter of despair, we had everything before us, we had nothing before us, we were all going direct to Heaven, we were all going direct the other wayβ€”in short, the period was so far like the present period, that some of its noisiest authorities insisted on its being received, for good or for evil, in the superlative degree of comparison only.</p>
  </content:encoded>          
      <wfw:commentRss>https://mysite.com/blogroll/a-tale-of-two-cities-teaser/feed/</wfw:commentRss>
      <slash:comments>45</slash:comments>
    </item>
  </channel>
</rss>

Π˜ΠΌΠΏΠΎΡ€Ρ‚ записСй ΠΈΠ· CSV

ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ CSV-Ρ„Π°ΠΉΠ» для создания записСй с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки (Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, excerpt, ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈ Π°Π²Ρ‚ΠΎΡ€).

НапримСр, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ CSV создаст 3 записи:

Title,Excerpt,Content,Author
Multi-channelled optimal interface,Inventore iste velit et expedita ipsa dolor,"<!-- wp:paragraph -->
<p>Inventore iste velit et expedita ipsa dolor. Optio suscipit qui id harum corporis dignissimos.</p>
<!-- /wp:paragraph -->",admin
Ergonomic motivating parallelism,Consequuntur velit quasi assumenda,"<!-- wp:paragraph -->
<p>Consequuntur velit quasi assumenda. Eum non saepe est. Ut dolorem harum eveniet eaque nemo impedit. Voluptatem commodi modi sed sed animi voluptatem.</p>
<!-- /wp:paragraph -->
<!-- wp:image {""id"":5,""sizeSlug"":""large""} -->
<figure class=""wp-block-image size-large""><img src=""https://mysite.com/wp-content/uploads/2023/09/wordpress0.jpg"" alt="""" class=""wp-image-5""/></figure>
<!-- /wp:image -->
<!-- wp:image {""id"":7,""sizeSlug"":""large""} -->
<figure class=""wp-block-image size-large""><img src=""https://mysite.com/wp-content/uploads/2023/09/wordpress2.jpg"" alt="""" class=""wp-image-7""/></figure>
<!-- /wp:image -->",admin
Down-sized solution-oriented securedline,Ipsam minima qui asperiores dolorum unde voluptas quia voluptate,"<!-- wp:paragraph -->
<p>Ipsam minima qui asperiores dolorum unde voluptas quia voluptate. Incidunt omnis cumque beatae quo deleniti ex. Praesentium nihil et consectetur neque commodi tempora ipsa adipisci. Praesentium perferendis sint est.</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>Et aut fuga aliquam consequuntur dolore sunt ut ut. Quibusdam in voluptas vitae quia eaque. Eligendi dolorum dolorem vitae et vitae et ut.</p>
<!-- /wp:paragraph -->",admin

ПослС выполнСния query ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹:

Записи, созданныС ΠΈΠ· CSV
Записи, созданныС ΠΈΠ· CSV

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ссылок ΠΈΠ· записСй

Находит всС ссылки Π²ΠΎ всСх записях (выполняя поиск строк Π²ΠΈΠ΄Π° <a href="(...)">(...)</a>) ΠΈ пСрСчисляСт ΠΈΡ… Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅ Π² Π²ΠΈΠ΄Π΅ JSON-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° со свойствами { href: (...), text: (...) }.

НапримСр, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΡ‚Π²Π΅Ρ‚:

{
  "data": {
    "posts": [
      {
        "id": 1435,
        "title": "Citations from famous authors",
        "links": [
          {
            "href": "https://www.azquotes.com/author/4085-Fyodor_Dostoevsky",
            "text": "Quote by Fyodor Dostoevsky"
          },
          {
            "href": "https://www.azquotes.com/author/14706-Leo_Tolstoy",
            "text": "Quote by Leon Tolstoi"
          },
          {
            "href": "https://www.azquotes.com/author/15138-Voltaire",
            "text": "Quote by Voltaire"
          }
        ]
      },
      {
        "id": 1,
        "title": "Hello world!",
        "links": []
      }
    ]
  }
}

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ скалярный Ρ‚ΠΈΠΏ XML

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ XML-строки Ρ‡Π΅Ρ€Π΅Π· Π½ΠΎΠ²Ρ‹ΠΉ скалярный Ρ‚ΠΈΠΏ XML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ XML-строки.

НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ query:

{
  _strDecodeXMLAsJSON(xml: """<?xml version="1.0" encoding="UTF-8"?>
  <body>
    <message>Hello world!</message>
  </body>
  """)
}

...Π²Π΅Ρ€Π½Ρ‘Ρ‚:

{
  "data": {
    "_strDecodeXMLAsJSON": {
      "message": "Hello world!"
    }
  }
}

А ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ query:

{
  _strDecodeXMLAsJSON(xml: """<?xml version="1.0" encoding="UTF-8"?>
  <body>
    <message>Hello world!</message>
  """)
}

...Π²Π΅Ρ€Π½Ρ‘Ρ‚:

{
  "errors": [
    {
      "message": "Cannot cast value '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n  <body>\n  <message>Hello world!<\/message>\n  ' for type 'XML'",
      "locations": [
        {
          "line": 2,
          "column": 31
        }
      ],
      "extensions": {
        "field": "_strDecodeXMLAsJSON(xml: \"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n  <body>\n  <message>Hello world!<\/message>\n  \")",
        "problems": [
          "Premature end of data in tag body line 2\n"
        ]
      }
    }
  ],
  "data": {
    "_strDecodeXMLAsJSON": null
  }
}

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° докумСнтация

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° докумСнтация для Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ ΠΈΠ· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Helper Function Collection:
    • _strDecodeXMLAsJSON
    • _strParseCSV

Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ

  • Π’ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… persisted queries Β«Translate postΒ» ΠΈ Β«Translate postsΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ failIfNonExistingKeyOrPath: false ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ свойства attributes.{something} Π±Π»ΠΎΠΊΠ° (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ)
  • Π’ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ persisted query Β«Import post from WordPress siteΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ статус any для Π²Ρ‹Π±ΠΎΡ€Π° записи
  • Persisted query Β«Translate postΒ» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π° Π² Β«Translate post (Gutenberg)Β», Π° Β«Translate postsΒ» β€” Π² Β«Translate posts (Gutenberg)Β»

ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° Π½Π°ΡˆΡƒ рассылку

Π‘ΡƒΠ΄ΡŒΡ‚Π΅ Π² курсС всСх ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Gato GraphQL.