Blog

🚀 Automatizza le tue attività WordPress con la nuova versione Gato GraphQL v2.1

Leonardo Losoviz
Di Leonardo Losoviz ·

Siamo lieti di annunciare che Gato GraphQL v2.1 è ora disponibile!

Con questa nuova versione e le estensioni PRO, puoi fare GraphQL come automatizzatore, sfruttando le query persistite GraphQL per automatizzare le attività legate ai dati sul tuo sito WordPress.

Ecco tutte le modifiche apportate a v2.1 (una versione più breve è disponibile nelle note di rilascio su GitHub).

Supporto per fornire la configurazione di schema da applicare quando si invoca il server GraphQL interno

Ora possiamo specificare quale configurazione di schema applicare durante l'esecuzione di una query tramite un server GraphQL interno (ovvero direttamente all'interno dell'applicazione PHP, senza passare per un endpoint).

Questa nuova funzionalità migliora l'estensione Internal GraphQL Server: ora accetta un parametro $schemaConfigurationIDOrSlug nei metodi executeQuery e executeQueryInFile della classe GraphQLServer, ed estrae già la configurazione di schema utilizzata dalla query persistita in executePersistedQuery:

class GraphQLServer {
  
  public static function executeQuery(
    string $query,
    array $variables = [],
    ?string $operationName = null,
+   // Accept parameter 
+   int|string|null $schemaConfigurationIDOrSlug = null,
  ): Response {
    // ...
  }
 
  public static function executeQueryInFile(
    string $file,
    array $variables = [],
    ?string $operationName = null,
+   // Accept parameter 
+   int|string|null $schemaConfigurationIDOrSlug = null,
  ): Response {
    // ...
  }
 
  public static function executePersistedQuery(
    WP_Post|string|int $persistedQuery,
    array $variables = [],
    ?string $operationName = null,
+   // Schema Configuration is taken directly from the Persisted Query
  ): Response {
    // ...
  }

GraphQL come automatizzatore [PRO]

La funzionalità descritta sopra costituisce anche la base per migliorare l'estensione Automation.

L'estensione Automation offre ora un'interfaccia utente di tipo "automatizzatore" (direttamente tramite l'editor di WordPress) chiamata Automation Configurator. Il trigger dell'automazione è un qualsiasi action hook di WordPress, e l'azione è l'esecuzione di una query persistita GraphQL.

Editor delle regole di automazione
Editor delle regole di automazione

Ad esempio, alla creazione di un nuovo articolo, la regola di automazione Add comments block to new post (che esegue la query persistita con lo stesso nome) verifica se il blocco core/comments è presente e, in caso contrario, lo aggiunge in fondo all'articolo:

Inserimento automatico del blocco dei commenti nei nuovi articoli in stato 'draft'
Inserimento automatico del blocco dei commenti nei nuovi articoli in stato 'draft'

Ecco alcuni modi in cui puoi usare l'automatizzatore:

  • Creare (e ottimizzare) un'immagine in evidenza per i nuovi articoli tramite l'IA
  • Aggiungere un blocco obbligatorio all'articolo al momento della pubblicazione
  • Sostituire http con https in tutte le sorgenti delle immagini e nei link quando un articolo viene aggiornato
  • Inviare un'e-mail all'amministratore quando c'è un nuovo articolo
  • Inviare un'e-mail all'utente il cui commento ha ricevuto una nuova risposta
  • [Multisite] Tradurre un nuovo articolo in diverse lingue e aggiungere gli articoli tradotti a ciascun sito
  • Eseguire un'azione su un servizio esterno (es.: condividere automaticamente i nuovi articoli su Facebook)

Poiché puoi comporre le query persistite GraphQL e le regole di automazione direttamente nel wp-admin, non ci vuole molto per creare una pipeline di automazione iper-personalizzata, adattata alle tue esigenze.

E poiché non esiste alcun vincolo sugli input (la query GraphQL può interagire con tutti i dati di WordPress e connettersi a qualsiasi servizio esterno tramite un client HTTP), dovresti essere in grado di soddisfare il 100% delle tue esigenze.

(I plugin automatizzatori coprono in genere il 95% delle nostre esigenze, perché spesso scopriamo che un input di cui abbiamo bisogno non è stato mappato.)

Diverse regole di automazione sono già create dal plugin (con stato draft, quindi devono essere aggiornate a publish per avere effetto). Puoi già usarle e consultarle come esempi per creare le tue automazioni (questo elenco verrà ampliato nelle prossime versioni):

  • Add comments block to new post
  • Insert block in new post
  • Send notification email to admin when there is a new post
  • Generate a post's featured image using AI (and optimize it) if a new post has none
Regole di automazione
Regole di automazione

Query persistita predefinita "Insert block in post"

La query GraphQL persistita appena aggiunta "Insert block in post" permette di iniettare un blocco in un articolo. Identifica l'n-esimo blocco di un tipo specifico (wp:paragraph per impostazione predefinita) in un articolo, e posiziona il contenuto HTML del blocco personalizzato fornito subito dopo di esso.

Utilizzata con l'estensione Automation, questa query persistita può essere impiegata per iniettare automaticamente blocchi obbligatori in un articolo appena pubblicato (es.: un blocco CTA per promuovere una campagna in corso).

Miglioramenti

  • Se l'inizializzazione del container dei servizi dalla cache fallisce, ripiego sull'inizializzazione dell'oggetto PHP dalla memoria (#2638)
  • Assegnare un operationName univoco a tutte le query persistite predefinite (#2644)
  • Messaggio di errore migliorato durante il recupero dei blocchi da un articolo il cui contenuto presenta errori
  • Documentazione completata per l'estensione Automation (#2651)
  • Nella query persistita predefinita "Generate a post's featured image using AI and optimize it", eseguire la logica solo se il titolo dell'articolo non è vuoto (#ec931dd)

Corretto

  • Bug nel componente JS multi-controllo utilizzato dalle estensioni (Access Control, Cache Control e Field Deprecation) che mostrava "undefined" sul blocco nella configurazione di schema (#2639)
  • Bug nelle sostituzioni tramite regex nelle query persistite predefinite (#2649)
  • Evitare la reinstallazione dei dati di configurazione del plugin durante la disattivazione/riattivazione del plugin (#2641)
  • Gestione dell'errore nel passaggio di un WP_Post come variabile GraphQL al server GraphQL interno (#2652)

Iscriviti alla nostra newsletter

Resta aggiornato su tutte le novità di Gato GraphQL.