WordPress verwalten
WordPress verwaltenAufgaben automatisieren

Aufgaben automatisieren

Führt automatisch eine GraphQL Persisted Query aus, wenn ein Ereignis auf der Website eintritt.

Erstelle Automatisierungen direkt über den WordPress-Editor. Der Automatisierungs-Trigger ist ein beliebiger WordPress Action-Hook, und die Aktion ist die Ausführung einer GraphQL Persisted Query.

Alle Automatisierungsregeln aufrufen

Wenn du im Menü des Plugins auf „Automation Rules" klickst, wird die Liste aller erstellten Automatisierungsregeln angezeigt:

Automatisierungsregeln
Automatisierungsregeln

Eine neue Automatisierungsregel erstellen

Klicke auf „Add New Automation Rule", um einen neuen Eintrag hinzuzufügen.

Im Editor-Bildschirm musst du die Konfiguration für Folgendes angeben:

  • Automatisierungs-Trigger
  • Automatisierungsaktion
Editor für Automatisierungsregeln
Editor für Automatisierungsregeln

Automatisierungsaktion

Die Automatisierungsaktion gibt an, welche GraphQL Persisted Query ausgeführt wird.

Konfiguriere dieses Element mit den folgenden Elementen:

Persisted Query: Wähle aus, welche GraphQL Persisted Query ausgeführt werden soll (unter allen mit dem Status publish oder private)

Static GraphQL Variables: Gib einen JSON-String mit Werten für die GraphQL-Variablen in der Persisted Query an. Dies sind statische Werte.

Zum Beispiel:

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

Diese Werte werden durch die „dynamischen" GraphQL-Variablen überschrieben (siehe Automatisierungs-Trigger unten).

Operation name (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).

Execute as user (optional): Führt die GraphQL Persisted Query aus, indem du als ein bestimmter Benutzer angemeldet bist, und gibst dabei den Benutzer-Slug an.

Automatisierungsregel - Ausführung der Persisted Query
Automatisierungsregel - Ausführung der Persisted Query

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 das Bearbeiten eines Beitrags oder einer Seite zu reagieren, kannst du die Hooks edit_post_post und edit_post_page angeben).

Konfiguriere dieses Element mit den folgenden Elementen:

Hook name: Der Name des WordPress Action-Hooks.

Dynamic GraphQL Variables: Gib einen JSON-String an, der GraphQL-Variablen den Argumenten der Hook-Funktion zuordnet. Diese dynamischen Werte werden der Query 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 liefert der Hook draft_post (aus den post status transitions) $post_id als erstes Argument. Das folgende JSON gibt dann 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 oben), haben die dynamischen Werte Vorrang.

Automatisierungsregel - Action-Hook
Automatisierungsregel - Action-Hook

WordPress-Hook-Zuordnung

Es gibt WordPress-Hooks, die nicht direkt im Automation Configurator verwendet werden können, weil sie ein PHP-Objekt über den Hook bereitstellen, das nicht als GraphQL-Variable eingegeben werden kann.

Mehrere dieser Hooks wurden von Gato GraphQL zugeordnet, indem ein neuer Hook mit dem Präfix gatographql: und demselben Hook-Namen ausgelöst wird 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 $post als Variable (vom Typ WP_Post). Gato GraphQL ordnet diesen Hook als gatographql:draft_to_publish zu und übergibt $postId (vom Typ int) als Variable.

Die folgende Tabelle listet die zugeordneten WordPress-Hooks auf:

WordPress-HookZugeordneter Hook von Gato GraphQL
{$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 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-Key als Teil des Hook-Namens ausgelöst. Dann kann eine Automatisierung ausgelöst werden, wenn einem Beitrag ein Beitragsbild zugewiesen wird, über den Hook gatographql:added_post_meta:_thumbnail_id.

Dies sind die zusätzlichen Gato GraphQL-Hooks:

Ursprünglicher WordPress-HookAusgelöster Gato GraphQL-Hook
{$old_status}_to_{$new_status}
(Übergibt WP_Post $post)
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}
(Alle übergeben int $postId, string $postType)
created_termgatographql:created_term:{$taxonomy}
set_object_termsgatographql:set_object_terms:{$taxonomy}
gatographql:updated_object_terms:{$taxonomy} (Wenn es einen Unterschied zwischen alten und neuen Termen gibt)
added_post_metagatographql:added_post_meta:{$meta_key}
gatographql:added_post_meta:{$post_type}:{$meta_key} (Übergibt auch string $post_type als 5. Parameter)
updated_post_metagatographql:updated_post_meta:{$meta_key}
gatographql:updated_post_meta:{$post_type}:{$meta_key} (Übergibt auch string $post_type als 5. Parameter)
deleted_post_metagatographql:deleted_post_meta:{$meta_key}
gatographql:deleted_post_meta:{$post_type}:{$meta_key} (Übergibt auch string $post_type als 5. Parameter)
added_term_metagatographql:added_term_meta:{$meta_key}
gatographql:added_term_meta:{$taxonomy}:{$meta_key} (Übergibt auch string $taxonomy als 5. Parameter)
updated_term_metagatographql:updated_term_meta:{$meta_key}
gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (Übergibt auch string $taxonomy als 5. Parameter)
deleted_term_metagatographql: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

Weitere Details findest du unter Probleme beheben.

Fehlerprotokolle

Alle Konfigurationsprobleme (wie ein fehlerhafter JSON-String für die GraphQL-Variablen oder ein Verweis auf eine Persisted Query, die gelöscht wurde) und Ausführungsfehler (wie ausgelöste Ausnahmen oder errors-Einträge in der GraphQL-Query) werden an die PHP-Funktion error_log gesendet und damit im WordPress-Fehlerprotokoll ausgegeben.

Diese Fehlerprotokolle sind mit der Zeichenkette [Gato GraphQL] versehen.