Configuratore di Automazione
Esegue automaticamente una Persisted Query GraphQL quando si verifica un evento sul sito.
Il modulo Configuratore di Automazione fornisce un'interfaccia utente "di automazione" per creare automazioni tramite l'editor di WordPress.
L'attivatore dell'automazione è un qualsiasi action hook di WordPress, e l'azione è l'esecuzione di una persisted query GraphQL.
Viene fornito un Custom Post Type "Regole di Automazione" per creare automazioni. Quando si crea una nuova voce, dobbiamo fornire la configurazione per:
- Attivatore/i dell'automazione
- Azione dell'automazione

Azione dell'automazione
L'azione dell'automazione indica quale persisted query GraphQL verrà eseguita.
Configura questo elemento con i seguenti campi:
Persisted Query: Seleziona quale persisted query GraphQL eseguire (tra tutte quelle con stato publish o private).
Variabili GraphQL statiche: Fornisci una stringa JSON con i valori delle variabili GraphQL nella persisted query. Questi sono valori statici.
Per esempio:
{
"emailSubject": "New post on the site"
}Questi valori vengono sovrascritti dalle variabili GraphQL "dinamiche" (vedi Attivatore/i dell'automazione qui sotto).
Nome dell'operazione (opzionale): Se la persisted query contiene più di un'operazione, puoi indicare quale eseguire (per impostazione predefinita, è l'ultima).
Esegui come utente (opzionale): Esegue la persisted query GraphQL essendo connessi come un utente specifico, fornendo lo slug dell'utente.

Attivatore/i dell'automazione
Un attivatore dell'automazione indica quale action hook di WordPress attiverà l'esecuzione della Persisted Query. Possiamo fornirne più di uno (ad esempio: per reagire solo alla modifica di un articolo o di una pagina, possiamo fornire gli hook edit_post_post e edit_post_page).
Configura questo elemento con i seguenti campi:
Nome del hook: Il nome dell'action hook di WordPress.
Variabili GraphQL dinamiche: Fornisci una stringa JSON che mappa le variabili GraphQL agli argomenti forniti alla funzione del hook. Questi valori dinamici verranno poi forniti alla query in fase di esecuzione.
Il dizionario JSON deve contenere il nome della variabile GraphQL come chiave, e la posizione dell'argomento nell'action hook come valore.
Per esempio, il hook draft_post (dalle transizioni di stato dell'articolo) fornisce il $post_id come primo argomento. Quindi, il seguente JSON indica che la variabile GraphQL $postID riceverà il valore di $post_id passato al hook:
{
"postID": 1
}(In questo esempio, 1 significa "valore del 1° argomento di draft_post".)
Se la stessa chiave viene utilizzata per le variabili GraphQL "dinamiche" e "statiche" (vedi Azione dell'automazione qui sopra), allora i valori dinamici hanno la priorità .

Mappatura degli hook di WordPress
Esistono hook di WordPress che non possono essere utilizzati direttamente nel Configuratore di Automazione, perché forniscono un oggetto PHP tramite il hook, che non può essere inserito come variabile GraphQL.
Diversi di questi hook sono stati mappati da Gato GraphQL, attivando un nuovo hook preceduto da gatographql: seguito dallo stesso nome del hook, e passando l'ID dell'oggetto corrispondente come variabile, che può essere inserita come variabile GraphQL.
Per esempio, il hook di WordPress draft_to_publish passa il $post come variabile (di tipo WP_Post). Gato GraphQL mappa questo hook come gatographql:draft_to_publish e passa il $postId (di tipo int) come variabile.
La seguente tabella elenca gli hook di WordPress mappati:
| Hook WordPress | Hook mappato da Gato GraphQL |
|---|---|
{$old_status}_to_{$new_status} (passando WP_Post $post) | gatographql:{$old_status}_to_{$new_status} (passando int $postId, string $postType) |
Inoltre, Gato GraphQL riattiva diversi hook di WordPress con alcune informazioni aggiuntive nel nome del hook, per facilitare la cattura e l'automazione di eventi specifici.
Per esempio, gli hook che creano, aggiornano ed eliminano valori meta vengono attivati contenendo la chiave meta come parte del nome del hook. Quindi, un'automazione può essere attivata quando un'immagine in evidenza viene assegnata a un articolo, sul hook gatographql:added_post_meta:_thumbnail_id.
Questi sono gli hook Gato GraphQL aggiuntivi:
| Hook WordPress di origine | Hook Gato GraphQL attivato |
|---|---|
{$old_status}_to_{$new_status}(Passando WP_Post $post) | gatographql:any_to_{$new_status}gatographql:{$old_status}_to_anygatographql:{$old_status}_to_{$new_status}:{$post_type}gatographql:any_to_{$new_status}:{$post_type}gatographql:{$old_status}_to_any:{$post_type}(Tutti passando int $postId, string $postType) |
created_term | gatographql:created_term:{$taxonomy} |
set_object_terms | gatographql:set_object_terms:{$taxonomy}gatographql:updated_object_terms:{$taxonomy} (Quando c'è una differenza tra i vecchi e i nuovi termini) |
added_post_meta | gatographql:added_post_meta:{$meta_key}gatographql:added_post_meta:{$post_type}:{$meta_key} (Passando anche string $post_type come 5° parametro) |
updated_post_meta | gatographql:updated_post_meta:{$meta_key}gatographql:updated_post_meta:{$post_type}:{$meta_key} (Passando anche string $post_type come 5° parametro) |
deleted_post_meta | gatographql:deleted_post_meta:{$meta_key}gatographql:deleted_post_meta:{$post_type}:{$meta_key} (Passando anche string $post_type come 5° parametro) |
added_term_meta | gatographql:added_term_meta:{$meta_key}gatographql:added_term_meta:{$taxonomy}:{$meta_key} (Passando anche string $taxonomy come 5° parametro) |
updated_term_meta | gatographql:updated_term_meta:{$meta_key}gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (Passando anche string $taxonomy come 5° parametro) |
deleted_term_meta | gatographql:deleted_term_meta:{$meta_key}gatographql:deleted_term_meta:{$taxonomy}:{$meta_key} (Passando anche string $taxonomy come 5° parametro) |
Debug dei problemi
Se l'automazione non è stata eseguita, potrebbe esserci un errore nella configurazione dell'automazione o nell'esecuzione della persisted query.
Log di esecuzione
Consulta Risoluzione dei problemi per maggiori dettagli.
Log di errore
Tutti i problemi di configurazione (come una stringa JSON malformata per le variabili GraphQL, o un puntatore a una persisted query che è stata eliminata) e gli errori di esecuzione (come eccezioni sollevate, o voci errors nella query GraphQL) vengono inviati alla funzione PHP error_log, quindi vengono stampati nel log degli errori di WordPress.
Questi log di errore sono preceduti dalla stringa [Gato GraphQL].
Esempi
Ecco alcuni esempi di come possiamo utilizzarlo:
- Creare un'immagine in evidenza per i nuovi articoli utilizzando l'IA
- Aggiungere un blocco obbligatorio all'articolo al momento della pubblicazione
- Sostituire
httpconhttpsin 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 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 (ad esempio: condividere automaticamente i nuovi articoli su Facebook)
Per esempio, durante la creazione di un nuovo articolo con stato draft, la regola di automazione predefinita Aggiungi un blocco di commenti al nuovo articolo verifica se il blocco core/comments è presente e, in caso contrario, lo aggiunge in fondo all'articolo:
