Blog

🚀 Automatisez vos tâches WordPress avec la nouvelle version Gato GraphQL v2.1

Leonardo Losoviz
Par Leonardo Losoviz ·

Nous sommes ravis d'annoncer que Gato GraphQL v2.1 est maintenant disponible !

Avec cette nouvelle version et les extensions PRO, vous pouvez faire du GraphQL comme automatiseur, en exploitant les requêtes persistées GraphQL pour automatiser les tâches liées aux données sur votre site WordPress.

Voici tous les changements apportés à v2.1 (une version plus courte est disponible dans les notes de version sur GitHub).

Prise en charge de la configuration de schéma à appliquer lors de l'appel au serveur GraphQL interne

Nous pouvons maintenant spécifier quelle configuration de schéma appliquer lors de l'exécution d'une requête via un serveur GraphQL interne (c'est-à-dire directement dans l'application PHP, sans passer par un endpoint).

Cette nouvelle fonctionnalité améliore l'extension Internal GraphQL Server : elle accepte désormais un paramètre $schemaConfigurationIDOrSlug dans les méthodes executeQuery et executeQueryInFile de la classe GraphQLServer, et extrait déjà la configuration de schéma utilisée par la requête persistée dans 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 comme automatiseur [PRO]

La fonctionnalité ci-dessus constitue également la base pour améliorer l'extension Automation.

L'extension Automation propose maintenant une interface utilisateur de type « automatiseur » (directement via l'éditeur WordPress) appelée Automation Configurator. Le déclencheur de l'automatisation est n'importe quel action hook WordPress, et l'action est l'exécution d'une requête persistée GraphQL.

Éditeur de règles d'automatisation
Éditeur de règles d'automatisation

Par exemple, lors de la création d'un nouvel article, la règle d'automatisation Add comments block to new post (qui exécute la requête persistée du même nom) vérifie si le bloc core/comments est présent et, dans le cas contraire, l'ajoute en bas de l'article :

Insertion automatique du bloc de commentaires dans les nouveaux articles en état 'draft'
Insertion automatique du bloc de commentaires dans les nouveaux articles en état 'draft'

Voici quelques façons d'utiliser l'automatiseur :

  • CrĂ©er (et optimiser) une image mise en avant pour les nouveaux articles via l'IA
  • Ajouter un bloc obligatoire Ă  l'article lors de sa publication
  • Remplacer http par https dans toutes les sources d'images et les liens lors de la mise Ă  jour d'un article
  • Envoyer un e-mail Ă  l'administrateur lors d'un nouvel article
  • Envoyer un e-mail Ă  l'utilisateur dont le commentaire a reçu 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 (ex. : partager automatiquement les nouveaux articles sur Facebook)

Comme vous pouvez composer les requêtes persistées GraphQL et les règles d'automatisation directement dans le wp-admin, il ne faut pas longtemps pour créer un pipeline d'automatisation ultra-personnalisé, adapté à vos besoins.

Et comme il n'y a aucune contrainte sur les entrées (la requête GraphQL peut interagir avec toutes les données de WordPress et se connecter à n'importe quel service externe via un client HTTP), vous devriez pouvoir satisfaire 100 % de vos exigences.

(Les plugins automatiseurs couvrent généralement 95 % de nos besoins, car nous constatons souvent qu'une entrée dont nous avons besoin n'a pas été mappée.)

Plusieurs règles d'automatisation sont déjà créées par le plugin (avec le statut draft, elles doivent donc être mises à jour à publish pour prendre effet). Vous pouvez déjà les utiliser et les consulter comme exemples pour créer vos propres automatisations (cette liste sera étendue dans les prochaines versions) :

  • 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
Règles d'automatisation
Règles d'automatisation

Requête persistée prédéfinie « Insert block in post »

La requête GraphQL persistée nouvellement ajoutée « Insert block in post » permet d'injecter un bloc dans un article. Elle identifie le nième bloc d'un type donné (wp:paragraph par défaut) dans un article, et place le contenu HTML du bloc personnalisé fourni juste après.

Utilisée avec l'extension Automation, cette requête persistée peut être employée pour injecter automatiquement des blocs obligatoires dans un article nouvellement publié (ex. : un bloc CTA pour promouvoir une campagne en cours).

Améliorations

  • Si l'initialisation du conteneur de services depuis le cache Ă©choue, repli sur l'initialisation de l'objet PHP depuis la mĂ©moire (#2638)
  • Attribuer un operationName unique Ă  toutes les requĂŞtes persistĂ©es prĂ©dĂ©finies (#2644)
  • Message d'erreur amĂ©liorĂ© lors de la rĂ©cupĂ©ration de blocs depuis un article dont le contenu contient des erreurs
  • Documentation complĂ©tĂ©e pour l'extension Automation (#2651)
  • Dans la requĂŞte persistĂ©e prĂ©dĂ©finie « Generate a post's featured image using AI and optimize it », exĂ©cuter la logique uniquement si le titre de l'article n'est pas vide (#ec931dd)

Corrigé

  • Bug dans le composant JS multi-contrĂ´le utilisĂ© par les extensions (Access Control, Cache Control et Field Deprecation) affichant « undefined » sur le bloc dans la configuration de schĂ©ma (#2639)
  • Bug dans les remplacements par regex dans les requĂŞtes persistĂ©es prĂ©dĂ©finies (#2649)
  • Éviter la rĂ©installation des donnĂ©es de configuration du plugin lors de la dĂ©sactivation/rĂ©activation du plugin (#2641)
  • Gestion de l'erreur lors du passage d'un WP_Post comme variable GraphQL au serveur GraphQL interne (#2652)

Abonnez-vous Ă  notre newsletter

Restez au courant de toutes les nouveautés de Gato GraphQL.