Automation Configurator
Führt automatisch eine GraphQL Persisted Query aus, wenn ein Ereignis auf der Website eintritt.
Das Modul Automation Configurator stellt eine „Automatisierungs"-Benutzeroberfläche bereit, mit der du Automatisierungen über den WordPress-Editor erstellen kannst.
Der Automatisierungs-Trigger ist ein beliebiger WordPress-Action-Hook, und die Aktion ist die Ausführung einer GraphQL Persisted Query.
Ein Custom Post Type „Automationsregeln" wird bereitgestellt, um Automatisierungen zu erstellen. Beim Anlegen eines neuen Eintrags musst du die Konfiguration für folgende Punkte angeben:
- Automatisierungs-Trigger
- Automatisierungsaktion

Automatisierungsaktion
Die Automatisierungsaktion gibt an, welche GraphQL Persisted Query ausgeführt wird.
Konfiguriere dieses Element mit folgenden Feldern:
Persisted Query: Wähle aus, welche GraphQL Persisted Query ausgeführt werden soll (unter allen, die den Status publish oder private haben).
Statische GraphQL-Variablen: Gib einen JSON-String mit Werten für die GraphQL-Variablen in der Persisted Query an. Das sind statische Werte.
Zum Beispiel:
{
"emailSubject": "New post on the site"
}Diese Werte werden durch die „dynamischen" GraphQL-Variablen überschrieben (siehe Automatisierungs-Trigger weiter unten).
Operationsname (optional): Wenn die Persisted Query mehr als eine Operation enthält, kannst du angeben, welche ausgeführt werden soll (standardmäßig ist es die letzte).
Als Benutzer ausführen (optional): Führt die GraphQL Persisted Query aus, während du als ein bestimmter Benutzer eingeloggt bist – gib dazu den Benutzer-Slug an.

Automatisierungs-Trigger
Ein Automatisierungs-Trigger gibt an, welcher WordPress-Action-Hook die Ausführung der Persisted Query auslöst. Du kannst mehr als einen angeben (z. B.: um nur auf die Bearbeitung eines Beitrags oder einer Seite zu reagieren, kannst du die Hooks edit_post_post und edit_post_page angeben).
Konfiguriere dieses Element mit folgenden Feldern:
Hook-Name: Der Name des WordPress-Action-Hooks.
Dynamische GraphQL-Variablen: Gib einen JSON-String an, der GraphQL-Variablen den Argumenten zuordnet, die der Hook-Funktion übergeben werden. Diese dynamischen Werte werden der Query dann zur Laufzeit übergeben.
Das JSON-Dictionary muss den Namen der GraphQL-Variable als Schlüssel und die Position des Arguments im Action-Hook als Wert enthalten.
Zum Beispiel übergibt der Hook draft_post (aus den Post-Status-Übergängen) die $post_id als erstes Argument. Das folgende JSON gibt an, dass die GraphQL-Variable $postID den Wert von $post_id erhält, der an den Hook übergeben wird:
{
"postID": 1
}(In diesem Beispiel bedeutet 1 „Wert des 1. Arguments von draft_post".)
Wenn derselbe Schlüssel für die „dynamischen" und „statischen" GraphQL-Variablen verwendet wird (siehe Automatisierungsaktion weiter oben), haben die dynamischen Werte Vorrang.

WordPress-Hook-Zuordnung
Es gibt WordPress-Hooks, die im Automation Configurator nicht direkt verwendet werden können, weil sie ein PHP-Objekt über den Hook bereitstellen, das nicht als GraphQL-Variable übergeben werden kann.
Mehrere dieser Hooks wurden von Gato GraphQL zugeordnet, indem ein neuer Hook ausgelöst wird, dem gatographql: und derselbe Hook-Name vorangestellt sind, und die entsprechende Objekt-ID als Variable übergeben wird, die als GraphQL-Variable eingegeben werden kann.
Zum Beispiel übergibt der WordPress-Hook draft_to_publish den $post als Variable (vom Typ WP_Post). Gato GraphQL ordnet diesen Hook als gatographql:draft_to_publish zu und übergibt die $postId (vom Typ int) als Variable.
Die folgende Tabelle listet die zugeordneten WordPress-Hooks auf:
| WordPress-Hook | Von Gato GraphQL zugeordneter Hook |
|---|---|
{$old_status}_to_{$new_status} (übergibt WP_Post $post) | gatographql:{$old_status}_to_{$new_status} (übergibt int $postId, string $postType) |
Darüber hinaus löst Gato GraphQL mehrere WordPress-Hooks mit einigen zusätzlichen Informationen im Hook-Namen erneut aus, um das Erfassen und Automatisieren bestimmter Ereignisse zu erleichtern.
Zum Beispiel werden Hooks, die Meta-Werte erstellen, aktualisieren und löschen, mit dem Meta-Schlüssel als Teil des Hook-Namens ausgelöst. So kann eine Automatisierung ausgelöst werden, wenn einem Beitrag ein Beitragsbild zugewiesen wird, auf dem Hook gatographql:added_post_meta:_thumbnail_id.
Dies sind die zusätzlichen Gato GraphQL-Hooks:
| Ursprünglicher WordPress-Hook | Ausgelöster Gato GraphQL-Hook |
|---|---|
{$old_status}_to_{$new_status}(Übergibt 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}(Alle übergeben int $postId, string $postType) |
created_term | gatographql:created_term:{$taxonomy} |
set_object_terms | gatographql:set_object_terms:{$taxonomy}gatographql:updated_object_terms:{$taxonomy} (Wenn es eine Differenz zwischen alten und neuen Termen gibt) |
added_post_meta | gatographql:added_post_meta:{$meta_key}gatographql:added_post_meta:{$post_type}:{$meta_key} (Übergibt auch string $post_type als 5. Parameter) |
updated_post_meta | gatographql:updated_post_meta:{$meta_key}gatographql:updated_post_meta:{$post_type}:{$meta_key} (Übergibt auch string $post_type als 5. Parameter) |
deleted_post_meta | gatographql:deleted_post_meta:{$meta_key}gatographql:deleted_post_meta:{$post_type}:{$meta_key} (Übergibt auch string $post_type als 5. Parameter) |
added_term_meta | gatographql:added_term_meta:{$meta_key}gatographql:added_term_meta:{$taxonomy}:{$meta_key} (Übergibt auch string $taxonomy als 5. Parameter) |
updated_term_meta | gatographql:updated_term_meta:{$meta_key}gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (Übergibt auch string $taxonomy als 5. Parameter) |
deleted_term_meta | gatographql:deleted_term_meta:{$meta_key}gatographql:deleted_term_meta:{$taxonomy}:{$meta_key} (Übergibt auch string $taxonomy als 5. Parameter) |
Probleme debuggen
Wenn die Automatisierung nicht ausgeführt wurde, könnte es einen Fehler in der Konfiguration der Automatisierung oder bei der Ausführung der Persisted Query geben.
Ausführungsprotokolle
Sieh dir Probleme beheben für weitere Details an.
Fehlerprotokolle
Alle Konfigurationsprobleme (wie ein fehlerhafter JSON-String für die GraphQL-Variablen oder ein Verweis auf eine gelöschte Persisted Query) und Ausführungsfehler (wie ausgelöste Ausnahmen oder errors-Einträge in der GraphQL-Query) werden an die PHP-Funktion error_log gesendet und daher im WordPress-Fehlerprotokoll ausgegeben.
Diese Fehlerprotokolle sind mit der Zeichenkette [Gato GraphQL] vorangestellt.
Beispiele
Hier sind einige Beispiele, wie du es verwenden kannst:
- Mit KI ein Beitragsbild für neue Beiträge erstellen
- Beim Veröffentlichen einen Pflichtblock zum Beitrag hinzufügen
httpdurchhttpsin allen Bildquellen und Links ersetzen, wenn ein Beitrag aktualisiert wird- Eine E-Mail an den Administrator senden, wenn es einen neuen Beitrag gibt
- Eine E-Mail an den Benutzer senden, dessen Kommentar eine neue Antwort erhalten hat
- [Multisite] Einen neuen Beitrag in verschiedene Sprachen übersetzen und die übersetzten Beiträge zu jedem Standort hinzufügen
- Eine Aktion auf einem externen Dienst ausführen (z. B.: neue Beiträge automatisch auf Facebook teilen)
Zum Beispiel prüft beim Erstellen eines neuen Beitrags mit dem Status draft die vordefinierte Automatisierungsregel Kommentarblock zu neuem Beitrag hinzufügen, ob der Block core/comments vorhanden ist, und fügt ihn, falls nicht, am Ende des Beitrags hinzu:
