Zarządzanie WordPress
Zarządzanie WordPressAutomatyzowanie zadań

Automatyzowanie zadań

Automatycznie wykonuj GraphQL Persisted Query, gdy na stronie wystąpi jakieś zdarzenie.

Twórz automatyzacje bezpośrednio w edytorze WordPress. Wyzwalaczem automatyzacji jest dowolny action hook WordPress, a akcją jest wykonanie persisted query GraphQL.

Dostęp do wszystkich reguł automatyzacji

Po kliknięciu "Automation Rules" w menu wtyczki wyświetlana jest lista wszystkich utworzonych reguł automatyzacji:

Reguły automatyzacji
Reguły automatyzacji

Tworzenie nowej reguły automatyzacji

Kliknij "Add New Automation Rule", aby dodać nowy wpis.

Na ekranie edytora należy podać konfigurację dla:

  • Wyzwalacza(-y) automatyzacji
  • Akcji automatyzacji
Edytor reguł automatyzacji
Edytor reguł automatyzacji

Akcja automatyzacji

Akcja automatyzacji wskazuje, która persisted query GraphQL zostanie wykonana.

Skonfiguruj ten element za pomocą następujących elementów:

Persisted Query: Wybierz, którą persisted query GraphQL wykonać (spośród wszystkich ze statusem publish lub private)

Static GraphQL Variables: Podaj ciąg JSON z wartościami dla zmiennych GraphQL w persisted query. Są to wartości statyczne.

Na przykład:

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

Wartości te są nadpisywane przez "dynamiczne" zmienne GraphQL (patrz Wyzwalacz(-e) automatyzacji poniżej).

Operation name (opcjonalnie): Jeśli persisted query zawiera więcej niż jedną operację, możesz wskazać, którą z nich wykonać (domyślnie jest to ostatnia).

Execute as user (opcjonalnie): Wykonaj persisted query GraphQL będąc zalogowanym jako konkretny użytkownik, podając slug użytkownika.

Reguła automatyzacji - Wykonanie Persisted Query
Reguła automatyzacji - Wykonanie Persisted Query

Wyzwalacz(-e) automatyzacji

Wyzwalacz automatyzacji wskazuje, który action hook WordPress wyzwoli wykonanie Persisted Query. Można podać więcej niż jeden (np.: aby reagować tylko na edycję posta lub strony, można podać hooki edit_post_post i edit_post_page).

Skonfiguruj ten element za pomocą następujących elementów:

Hook name: Nazwa action hooka WordPress.

Dynamic GraphQL Variables: Podaj ciąg JSON mapujący zmienne GraphQL na argumenty przekazywane do funkcji hooka. Te dynamiczne wartości będą następnie przekazywane do queries w czasie wykonywania.

Słownik JSON musi zawierać nazwę zmiennej GraphQL jako klucz, a pozycję argumentu w action hooku jako wartość.

Na przykład, hook draft_post (z post status transitions) przekazuje $post_id jako pierwszy argument. Poniższy JSON wskazuje, że zmienna GraphQL $postID otrzyma wartość $post_id przekazaną do hooka:

{
  "postID": 1
}

(W tym przykładzie 1 oznacza "wartość 1. argumentu draft_post".)

Jeśli ten sam klucz jest używany dla zmiennych GraphQL "dynamicznych" i "statycznych" (patrz Akcja automatyzacji powyżej), to wartości dynamiczne mają pierwszeństwo.

Reguła automatyzacji - Action hook
Reguła automatyzacji - Action hook

Mapowanie hooków WordPress

Istnieją hooki WordPress, których nie można bezpośrednio używać w Automation Configurator, ponieważ przekazują obiekt PHP przez hook, który nie może być użyty jako zmienna GraphQL.

Kilka z tych hooków zostało zmapowanych przez Gato GraphQL poprzez wyzwolenie nowego hooka z prefiksem gatographql: i tą samą nazwą hooka, oraz przekazanie odpowiedniego ID obiektu jako zmiennej, która może być użyta jako zmienna GraphQL.

Na przykład, hook WordPress draft_to_publish przekazuje $post jako zmienną (typu WP_Post). Gato GraphQL mapuje ten hook jako gatographql:draft_to_publish i przekazuje $postId (typu int) jako zmienną.

Poniższa tabela zawiera listę zmapowanych hooków WordPress:

Hook WordPressHook zmapowany przez Gato GraphQL
{$old_status}_to_{$new_status} (przekazując WP_Post $post)gatographql:{$old_status}_to_{$new_status} (przekazując int $postId, string $postType)

Ponadto Gato GraphQL ponownie wyzwala kilka hooków WordPress z dodatkowymi informacjami w nazwie hooka, aby ułatwić przechwytywanie i automatyzowanie określonych zdarzeń.

Na przykład, hooki, które tworzą, aktualizują i usuwają wartości meta, są wyzwalane z kluczem meta jako częścią nazwy hooka. Dzięki temu automatyzacja może być wyzwolona, gdy do posta zostanie przypisany obraz wyróżniający, na hooku gatographql:added_post_meta:_thumbnail_id.

Oto dodatkowe hooki Gato GraphQL:

Źródłowy hook WordPressWyzwolony hook Gato GraphQL
{$old_status}_to_{$new_status}
(Przekazując 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}
(Wszystkie przekazując int $postId, string $postType)
created_termgatographql:created_term:{$taxonomy}
set_object_termsgatographql:set_object_terms:{$taxonomy}
gatographql:updated_object_terms:{$taxonomy} (Gdy istnieje różnica między starymi a nowymi terminami)
added_post_metagatographql:added_post_meta:{$meta_key}
gatographql:added_post_meta:{$post_type}:{$meta_key} (Również przekazując string $post_type jako 5. parametr)
updated_post_metagatographql:updated_post_meta:{$meta_key}
gatographql:updated_post_meta:{$post_type}:{$meta_key} (Również przekazując string $post_type jako 5. parametr)
deleted_post_metagatographql:deleted_post_meta:{$meta_key}
gatographql:deleted_post_meta:{$post_type}:{$meta_key} (Również przekazując string $post_type jako 5. parametr)
added_term_metagatographql:added_term_meta:{$meta_key}
gatographql:added_term_meta:{$taxonomy}:{$meta_key} (Również przekazując string $taxonomy jako 5. parametr)
updated_term_metagatographql:updated_term_meta:{$meta_key}
gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (Również przekazując string $taxonomy jako 5. parametr)
deleted_term_metagatographql:deleted_term_meta:{$meta_key}
gatographql:deleted_term_meta:{$taxonomy}:{$meta_key} (Również przekazując string $taxonomy jako 5. parametr)

Debugowanie problemów

Jeśli automatyzacja nie została wykonana, może wystąpić błąd w konfiguracji automatyzacji lub podczas wykonywania persisted query.

Logi wykonania

Sprawdź Rozwiązywanie problemów, aby uzyskać więcej szczegółów.

Logi błędów

Wszystkie problemy z konfiguracją (takie jak źle sformułowany ciąg JSON dla zmiennych GraphQL lub wskazanie na persisted query, która została usunięta) oraz błędy wykonania (takie jak zgłoszone wyjątki lub wpisy errors w query GraphQL) są wysyłane do funkcji PHP error_log, więc są drukowane w logu błędów WordPress.

Te logi błędów są poprzedzone ciągiem [Gato GraphQL].