Görevleri Otomatikleştirme
Sitede bir olay gerçekleştiğinde GraphQL Persisted Query'yi otomatik olarak çalıştırır.
Otomasyonları doğrudan WordPress editörü aracılığıyla oluşturun. Otomasyon tetikleyicisi herhangi bir WordPress action hook'u olabilir; eylem ise bir GraphQL persisted query'nin çalıştırılmasıdır.
Tüm otomasyon kurallarına erişim
Eklenti menüsündeki "Automation Rules" seçeneğine tıklandığında, oluşturulan tüm otomasyon kurallarının listesi görüntülenir:

Yeni bir otomasyon kuralı oluşturma
Yeni bir giriş eklemek için "Add New Automation Rule" düğmesine tıklayın.
Editör ekranında şunların yapılandırmasını sağlamalıyız:
- Otomasyon tetikleyici(leri)
- Otomasyon eylemi

Otomasyon eylemi
Otomasyon eylemi, hangi GraphQL persisted query'nin çalıştırılacağını belirtir.
Bu öğeyi aşağıdaki unsurlarla yapılandırın:
Persisted Query: Çalıştırılacak GraphQL persisted query'yi seçin (durumu publish veya private olan tüm queries arasından)
Static GraphQL Variables: Persisted query'deki GraphQL değişkenleri için değerleri içeren bir JSON dizesi girin. Bunlar statik değerlerdir.
Örneğin:
{
"emailSubject": "New post on the site"
}Bu değerler, "dinamik" GraphQL değişkenleri tarafından geçersiz kılınır (aşağıdaki Otomasyon tetikleyici(leri) bölümüne bakın).
Operation name (isteğe bağlı): Persisted query birden fazla işlem içeriyorsa, hangisinin çalıştırılacağını belirtebilirsiniz (varsayılan olarak sonuncusu çalıştırılır).
Execute as user (isteğe bağlı): Belirli bir kullanıcı olarak oturum açılmış şekilde GraphQL persisted query'yi çalıştırır; kullanıcı slug'ını girin.

Otomasyon tetikleyici(leri)
Bir otomasyon tetikleyicisi, Persisted Query'nin çalıştırılmasını tetikleyecek WordPress action hook'unu belirtir. Birden fazla tetikleyici sağlanabilir (örneğin: yalnızca bir yazı veya sayfanın düzenlenmesine tepki vermek için edit_post_post ve edit_post_page hook'ları sağlanabilir).
Bu öğeyi aşağıdaki unsurlarla yapılandırın:
Hook name: WordPress action hook adı.
Dynamic GraphQL Variables: GraphQL değişkenlerini hook fonksiyonuna iletilen argümanlarla eşleştiren bir JSON dizesi girin. Bu dinamik değerler, çalışma zamanında queries'e sağlanır.
JSON sözlüğü, GraphQL değişken adını anahtar olarak ve action hook'taki argümanın konumunu değer olarak içermelidir.
Örneğin, draft_post hook'u (post status transitions sayfasından) $post_id'yi ilk argüman olarak sağlar. Aşağıdaki JSON, $postID GraphQL değişkeninin hook'a iletilen $post_id değerini alacağını belirtir:
{
"postID": 1
}(Bu örnekte, 1 "draft_post'un 1. argümanının değeri" anlamına gelir.)
"Dinamik" ve "statik" GraphQL değişkenleri için aynı anahtar kullanılırsa (yukarıdaki Otomasyon eylemi bölümüne bakın), dinamik değerler öncelik kazanır.

WordPress hook eşleştirmesi
Automation Configurator'da doğrudan kullanılamayan WordPress hook'ları vardır; çünkü bu hook'lar, GraphQL değişkeni olarak girilemeyecek bir PHP nesnesi iletir.
Bu hook'lardan birçoğu Gato GraphQL tarafından eşleştirilmiştir: gatographql: öneki ve aynı hook adı ile yeni bir hook tetiklenerek, GraphQL değişkeni olarak girilebilecek ilgili nesne kimliği değişken olarak iletilir.
Örneğin, WordPress hook'u draft_to_publish, $post'u değişken olarak (WP_Post türünde) iletir. Gato GraphQL bu hook'u gatographql:draft_to_publish olarak eşleştirir ve $postId'yi (int türünde) değişken olarak iletir.
Aşağıdaki tablo, eşleştirilen WordPress hook'larını listeler:
| WordPress hook | Gato GraphQL tarafından eşleştirilen hook |
|---|---|
{$old_status}_to_{$new_status} (WP_Post $post iletilerek) | gatographql:{$old_status}_to_{$new_status} (int $postId, string $postType iletilerek) |
Buna ek olarak, Gato GraphQL belirli olayları yakalamayı ve otomatikleştirmeyi kolaylaştırmak amacıyla bazı WordPress hook'larını hook adında ek bilgilerle yeniden tetikler.
Örneğin, meta değerleri oluşturan, güncelleyen ve silen hook'lar, meta anahtarını hook adının bir parçası olarak içerecek şekilde tetiklenir. Böylece, bir yazıya öne çıkan görsel atandığında gatographql:added_post_meta:_thumbnail_id hook'u üzerinden bir otomasyon tetiklenebilir.
Ek Gato GraphQL hook'ları şunlardır:
| Kaynak WordPress hook | Tetiklenen Gato GraphQL hook |
|---|---|
{$old_status}_to_{$new_status}( WP_Post $post iletilerek) | 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}(Tümü int $postId, string $postType iletilerek) |
created_term | gatographql:created_term:{$taxonomy} |
set_object_terms | gatographql:set_object_terms:{$taxonomy}gatographql:updated_object_terms:{$taxonomy} (Eski ve yeni terimler arasında fark olduğunda) |
added_post_meta | gatographql:added_post_meta:{$meta_key}gatographql:added_post_meta:{$post_type}:{$meta_key} (5. parametre olarak string $post_type de iletilerek) |
updated_post_meta | gatographql:updated_post_meta:{$meta_key}gatographql:updated_post_meta:{$post_type}:{$meta_key} (5. parametre olarak string $post_type de iletilerek) |
deleted_post_meta | gatographql:deleted_post_meta:{$meta_key}gatographql:deleted_post_meta:{$post_type}:{$meta_key} (5. parametre olarak string $post_type de iletilerek) |
added_term_meta | gatographql:added_term_meta:{$meta_key}gatographql:added_term_meta:{$taxonomy}:{$meta_key} (5. parametre olarak string $taxonomy de iletilerek) |
updated_term_meta | gatographql:updated_term_meta:{$meta_key}gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (5. parametre olarak string $taxonomy de iletilerek) |
deleted_term_meta | gatographql:deleted_term_meta:{$meta_key}gatographql:deleted_term_meta:{$taxonomy}:{$meta_key} (5. parametre olarak string $taxonomy de iletilerek) |
Sorunları ayıklama
Otomasyon çalıştırılmadıysa, otomasyon yapılandırmasında veya persisted query'nin çalıştırılmasında bir hata olabilir.
Çalıştırma günlükleri
Daha fazla ayrıntı için Sorunları giderme bölümüne bakın.
Hata günlükleri
Tüm yapılandırma sorunları (GraphQL değişkenleri için hatalı biçimlendirilmiş JSON dizesi veya silinmiş bir persisted query'ye yapılan başvuru gibi) ve çalıştırma hataları (atılan istisnalar veya GraphQL query'sindeki errors girişleri gibi) PHP'nin error_log fonksiyonuna gönderilir ve bu nedenle WordPress hata günlüğünde yazdırılır.
Bu hata günlükleri [Gato GraphQL] dizesiyle başlar.