Configurateur d'Automatisation
Exécute automatiquement une Persisted Query GraphQL lorsqu'un événement se produit sur le site.
Le module Configurateur d'Automatisation fournit une interface utilisateur « automatisatrice » pour créer des automatisations via l'éditeur WordPress.
Le déclencheur d'automatisation est n'importe quel action hook WordPress, et l'action est l'exécution d'une persisted query GraphQL.
Un Custom Post Type « Règles d'Automatisation » est fourni pour créer des automatisations. Lors de la création d'une nouvelle entrée, nous devons fournir la configuration pour :
- Déclencheur(s) d'automatisation
- Action d'automatisation

Action d'automatisation
L'action d'automatisation indique quelle persisted query GraphQL sera exécutée.
Configurez cet élément avec les champs suivants :
Persisted Query : Sélectionnez quelle persisted query GraphQL exécuter (parmi toutes celles ayant le statut publish ou private).
Variables GraphQL statiques : Fournissez une chaîne JSON avec les valeurs des variables GraphQL dans la persisted query. Ce sont des valeurs statiques.
Par exemple :
{
"emailSubject": "New post on the site"
}Ces valeurs sont remplacées par les variables GraphQL « dynamiques » (voir Déclencheur(s) d'automatisation ci-dessous).
Nom de l'opération (optionnel) : Si la persisted query contient plus d'une opération, vous pouvez indiquer laquelle exécuter (par défaut, c'est la dernière).
Exécuter en tant qu'utilisateur (optionnel) : Exécute la persisted query GraphQL en étant connecté en tant qu'utilisateur spécifique, en fournissant le slug de l'utilisateur.

Déclencheur(s) d'automatisation
Un déclencheur d'automatisation indique quel action hook WordPress déclenchera l'exécution de la Persisted Query. Nous pouvons en fournir plusieurs (par exemple : pour réagir uniquement à la modification d'un article ou d'une page, nous pouvons fournir les hooks edit_post_post et edit_post_page).
Configurez cet élément avec les champs suivants :
Nom du hook : Le nom de l'action hook WordPress.
Variables GraphQL dynamiques : Fournissez une chaîne JSON mappant les variables GraphQL aux arguments fournis à la fonction du hook. Ces valeurs dynamiques seront ensuite fournies à la requête lors de l'exécution.
Le dictionnaire JSON doit contenir le nom de la variable GraphQL comme clé, et la position de l'argument dans l'action hook comme valeur.
Par exemple, le hook draft_post (des transitions de statut d'article) fournit le $post_id comme premier argument. Ainsi, le JSON suivant indique que la variable GraphQL $postID recevra la valeur de $post_id passée au hook :
{
"postID": 1
}(Dans cet exemple, 1 signifie « valeur du 1er argument de draft_post ».)
Si la même clé est utilisée pour les variables GraphQL « dynamiques » et « statiques » (voir Action d'automatisation ci-dessus), alors les valeurs dynamiques ont la priorité.

Mappage des hooks WordPress
Il existe des hooks WordPress qui ne peuvent pas être utilisés directement dans le Configurateur d'Automatisation, car ils fournissent un objet PHP via le hook, qui ne peut pas être saisi comme variable GraphQL.
Plusieurs de ces hooks ont été mappés par Gato GraphQL, en déclenchant un nouveau hook préfixé par gatographql: suivi du même nom de hook, et en passant l'ID de l'objet correspondant comme variable, qui peut être saisi comme variable GraphQL.
Par exemple, le hook WordPress draft_to_publish passe le $post comme variable (de type WP_Post). Gato GraphQL mappe ce hook comme gatographql:draft_to_publish et passe le $postId (de type int) comme variable.
Le tableau suivant liste les hooks WordPress mappés :
| Hook WordPress | Hook mappé par Gato GraphQL |
|---|---|
{$old_status}_to_{$new_status} (passant WP_Post $post) | gatographql:{$old_status}_to_{$new_status} (passant int $postId, string $postType) |
De plus, Gato GraphQL redéclenche plusieurs hooks WordPress avec des informations supplémentaires dans le nom du hook, pour faciliter la capture et l'automatisation d'événements spécifiques.
Par exemple, les hooks qui créent, mettent à jour et suppriment des valeurs méta sont déclenchés en contenant la clé méta comme partie du nom du hook. Ainsi, une automatisation peut être déclenchée lorsqu'une image à la une est assignée à un article, sur le hook gatographql:added_post_meta:_thumbnail_id.
Voici les hooks Gato GraphQL supplémentaires :
| Hook WordPress source | Hook Gato GraphQL déclenché |
|---|---|
{$old_status}_to_{$new_status}(Passant 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}(Tous passant int $postId, string $postType) |
created_term | gatographql:created_term:{$taxonomy} |
set_object_terms | gatographql:set_object_terms:{$taxonomy}gatographql:updated_object_terms:{$taxonomy} (Lorsqu'il y a une différence entre les anciens et nouveaux termes) |
added_post_meta | gatographql:added_post_meta:{$meta_key}gatographql:added_post_meta:{$post_type}:{$meta_key} (Passant également string $post_type comme 5e paramètre) |
updated_post_meta | gatographql:updated_post_meta:{$meta_key}gatographql:updated_post_meta:{$post_type}:{$meta_key} (Passant également string $post_type comme 5e paramètre) |
deleted_post_meta | gatographql:deleted_post_meta:{$meta_key}gatographql:deleted_post_meta:{$post_type}:{$meta_key} (Passant également string $post_type comme 5e paramètre) |
added_term_meta | gatographql:added_term_meta:{$meta_key}gatographql:added_term_meta:{$taxonomy}:{$meta_key} (Passant également string $taxonomy comme 5e paramètre) |
updated_term_meta | gatographql:updated_term_meta:{$meta_key}gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (Passant également string $taxonomy comme 5e paramètre) |
deleted_term_meta | gatographql:deleted_term_meta:{$meta_key}gatographql:deleted_term_meta:{$taxonomy}:{$meta_key} (Passant également string $taxonomy comme 5e paramètre) |
Débogage des problèmes
Si l'automatisation n'a pas été exécutée, il peut y avoir une erreur dans la configuration de l'automatisation ou dans l'exécution de la persisted query.
Journaux d'exécution
Consultez Résolution des problèmes pour plus de détails.
Journaux d'erreurs
Tous les problèmes de configuration (tels qu'une chaîne JSON malformée pour les variables GraphQL, ou un pointeur vers une persisted query qui a été supprimée) et les erreurs d'exécution (telles que des exceptions levées, ou des entrées errors dans la requête GraphQL) sont envoyés à la fonction PHP error_log, donc ils sont imprimés dans le journal d'erreurs WordPress.
Ces journaux d'erreurs sont précédés de la chaîne [Gato GraphQL].
Exemples
Voici quelques exemples de la façon dont nous pouvons l'utiliser :
- Créer une image à la une pour les nouveaux articles en utilisant l'IA
- Ajouter un bloc obligatoire à l'article lors de sa publication
- Remplacer
httpparhttpsdans toutes les sources d'images et liens lorsqu'un article est mis à jour - Envoyer un e-mail à l'administrateur lorsqu'il y a un nouvel article
- Envoyer un e-mail à l'utilisateur dont le commentaire a une nouvelle réponse
- [Multisite] Traduire un nouvel article dans différentes langues, et ajouter les articles traduits à chaque site
- Exécuter une action sur un service externe (par exemple : partager automatiquement de nouveaux articles sur Facebook)
Par exemple, lors de la création d'un nouvel article avec le statut draft, la règle d'automatisation prédéfinie Ajouter un bloc de commentaires au nouvel article vérifie si le bloc core/comments est présent et, si non, il l'ajoute au bas de l'article :
