Automatisering
AutomatiseringAutomatisering Configurator

Automatisering Configurator

Voer automatisch een GraphQL Persisted Query uit wanneer er een gebeurtenis plaatsvindt op de site.

De module Automatisering Configurator biedt een "automatiseerder" gebruikersinterface om automatiseringen te maken via de WordPress-editor.

De automatiseringstrigger is een willekeurige WordPress action hook, en de actie is het uitvoeren van een GraphQL persisted query.

Er is een Custom Post Type "Automatiseringsregels" beschikbaar om automatiseringen te maken. Bij het aanmaken van een nieuw item moet je de configuratie opgeven voor:

  • Automatiseringstrigger(s)
  • Automatiseringsactie
Editor voor automatiseringsregels
Editor voor automatiseringsregels

Automatiseringsactie

De automatiseringsactie geeft aan welke GraphQL persisted query wordt uitgevoerd.

Configureer dit item met de volgende elementen:

Persisted Query: Selecteer welke GraphQL persisted query je wilt uitvoeren (uit alle persisted queries met status publish of private).

Statische GraphQL-variabelen: Geef een JSON-string op met waarden voor de GraphQL-variabelen in de persisted query. Dit zijn statische waarden.

Bijvoorbeeld:

{
  "emailSubject": "New post on the site"
}

Deze waarden worden overschreven door de "dynamische" GraphQL-variabelen (zie Automatiseringstrigger(s) hieronder).

Naam van de operatie (optioneel): Als de persisted query meer dan één operatie bevat, kun je aangeven welke je wilt uitvoeren (standaard is dit de laatste).

Uitvoeren als gebruiker (optioneel): Voer de GraphQL persisted query uit terwijl je bent ingelogd als een specifieke gebruiker — geef de slug van de gebruiker op.

Automatiseringsregel - Uitvoering van Persisted Query
Automatiseringsregel - Uitvoering van Persisted Query

Automatiseringstrigger(s)

Een automatiseringstrigger geeft aan welke WordPress action hook de uitvoering van de Persisted Query triggert. Je kunt er meer dan één opgeven (bijv. om alleen te reageren op het bewerken van een bericht of pagina, kun je de hooks edit_post_post en edit_post_page opgeven).

Configureer dit item met de volgende elementen:

Hooknaam: De naam van de WordPress action hook.

Dynamische GraphQL-variabelen: Geef een JSON-string op die GraphQL-variabelen koppelt aan de argumenten die aan de hookfunctie worden doorgegeven. Deze dynamische waarden worden vervolgens tijdens de uitvoering aan de query doorgegeven.

Het JSON-woordenboek moet de naam van de GraphQL-variabele als sleutel bevatten, en de positie van het argument in de action hook als waarde.

Bijvoorbeeld, hook draft_post (van de berichtstatusovergangen) geeft $post_id door als eerste argument. De volgende JSON geeft aan dat de GraphQL-variabele $postID de waarde van $post_id ontvangt die aan de hook wordt doorgegeven:

{
  "postID": 1
}

(In dit voorbeeld betekent 1 "waarde van het 1e argument van draft_post".)

Als dezelfde sleutel wordt gebruikt voor de "dynamische" en "statische" GraphQL-variabelen (zie Automatiseringsactie hierboven), hebben de dynamische waarden voorrang.

Automatiseringsregel - Action hook
Automatiseringsregel - Action hook

WordPress hook-mapping

Er zijn WordPress-hooks die niet direct in de Automatisering Configurator kunnen worden gebruikt, omdat ze een PHP-object via de hook doorgeven, dat niet als GraphQL-variabele kan worden ingevoerd.

Verscheidene van deze hooks zijn door Gato GraphQL in kaart gebracht door een nieuwe hook te triggeren met het voorvoegsel gatographql: en dezelfde hooknaam, en de bijbehorende object-ID als variabele door te geven, die als GraphQL-variabele kan worden ingevoerd.

Bijvoorbeeld, de WordPress hook draft_to_publish geeft $post door als variabele (van het type WP_Post). Gato GraphQL mapt deze hook als gatographql:draft_to_publish en geeft $postId (van het type int) door als variabele.

De volgende tabel toont de gemapte WordPress-hooks:

WordPress hookGemapte hook door Gato GraphQL
{$old_status}_to_{$new_status} (geeft WP_Post $post door)gatographql:{$old_status}_to_{$new_status} (geeft int $postId, string $postType door)

Daarnaast triggert Gato GraphQL verscheidene WordPress-hooks opnieuw met extra informatie in de hooknaam, om het gemakkelijker te maken specifieke gebeurtenissen te onderscheppen en te automatiseren.

Bijvoorbeeld, hooks die meta-waarden aanmaken, bijwerken en verwijderen worden getriggerd met de meta-sleutel als onderdeel van de hooknaam. Zo kan een automatisering worden getriggerd wanneer een uitgelichte afbeelding aan een bericht wordt gekoppeld, op hook gatographql:added_post_meta:_thumbnail_id.

Dit zijn de extra Gato GraphQL hooks:

Bron WordPress hookGetriggerde Gato GraphQL hook
{$old_status}_to_{$new_status}
(Geeft WP_Post $post door)
gatographql:any_to_{$new_status}
gatographql:{$old_status}_to_any
gatographql:{$old_status}_to_{$new_status}:{$post_type}
gatographql:any_to_{$new_status}:{$post_type}
gatographql:{$old_status}_to_any:{$post_type}
(Allemaal met int $postId, string $postType)
created_termgatographql:created_term:{$taxonomy}
set_object_termsgatographql:set_object_terms:{$taxonomy}
gatographql:updated_object_terms:{$taxonomy} (Wanneer er een verschil is tussen oude en nieuwe termen)
added_post_metagatographql:added_post_meta:{$meta_key}
gatographql:added_post_meta:{$post_type}:{$meta_key} (Geeft ook string $post_type door als 5e parameter)
updated_post_metagatographql:updated_post_meta:{$meta_key}
gatographql:updated_post_meta:{$post_type}:{$meta_key} (Geeft ook string $post_type door als 5e parameter)
deleted_post_metagatographql:deleted_post_meta:{$meta_key}
gatographql:deleted_post_meta:{$post_type}:{$meta_key} (Geeft ook string $post_type door als 5e parameter)
added_term_metagatographql:added_term_meta:{$meta_key}
gatographql:added_term_meta:{$taxonomy}:{$meta_key} (Geeft ook string $taxonomy door als 5e parameter)
updated_term_metagatographql:updated_term_meta:{$meta_key}
gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (Geeft ook string $taxonomy door als 5e parameter)
deleted_term_metagatographql:deleted_term_meta:{$meta_key}
gatographql:deleted_term_meta:{$taxonomy}:{$meta_key} (Geeft ook string $taxonomy door als 5e parameter)

Problemen debuggen

Als de automatisering niet is uitgevoerd, kan er een fout zijn in de configuratie van de automatisering of bij het uitvoeren van de persisted query.

Uitvoeringslogboeken

Bekijk Problemen oplossen voor meer details.

Foutlogboeken

Alle configuratieproblemen (zoals een onjuist opgemaakte JSON-string voor de GraphQL-variabelen, of een verwijzing naar een persisted query die is verwijderd) en uitvoeringsfouten (zoals gegooide uitzonderingen, of errors-vermeldingen in de GraphQL query) worden verzonden naar de PHP-functie error_log, waardoor ze worden opgeslagen in het WordPress-foutlogboek.

Deze foutlogboeken worden voorafgegaan door de string [Gato GraphQL].

Voorbeelden

Hier zijn enkele voorbeelden van hoe je het kunt gebruiken:

  • Maak een uitgelichte afbeelding voor nieuwe berichten met behulp van AI
  • Voeg een verplicht blok toe aan het bericht bij publicatie
  • Vervang http door https in alle afbeeldingsbronnen en links wanneer een bericht wordt bijgewerkt
  • Stuur een e-mail naar de beheerder wanneer er een nieuw bericht is
  • Stuur een e-mail naar de gebruiker wiens opmerking een nieuwe reactie heeft ontvangen
  • [Multisite] Vertaal een nieuw bericht naar verschillende talen en voeg de vertaalde berichten toe aan elke site
  • Voer een actie uit op een externe dienst (bijv. automatisch nieuwe berichten delen op Facebook)

Bijvoorbeeld, bij het aanmaken van een nieuw bericht met status draft controleert de vooraf gedefinieerde automatiseringsregel Voeg commentaarblok toe aan nieuw bericht of het blok core/comments aanwezig is en voegt het, indien niet aanwezig, toe aan het einde van het bericht:

Automatisch het commentaarblok invoegen in nieuwe 'draft'-berichten
Automatisch het commentaarblok invoegen in nieuwe 'draft'-berichten