WordPress'i Yönetmek
WordPress'i YönetmekGörevleri Otomatikleştirme

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:

Otomasyon Kuralları
Otomasyon Kuralları

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 Kuralı editörü
Otomasyon Kuralı editörü

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 Kuralı - Persisted Query Çalıştırma
Otomasyon Kuralı - Persisted Query Çalıştırma

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.

Otomasyon Kuralı - Action hook
Otomasyon Kuralı - Action hook

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 hookGato 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 hookTetiklenen Gato GraphQL hook
{$old_status}_to_{$new_status}
(WP_Post $post iletilerek)
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}
(Tümü int $postId, string $postType iletilerek)
created_termgatographql:created_term:{$taxonomy}
set_object_termsgatographql:set_object_terms:{$taxonomy}
gatographql:updated_object_terms:{$taxonomy} (Eski ve yeni terimler arasında fark olduğunda)
added_post_metagatographql:added_post_meta:{$meta_key}
gatographql:added_post_meta:{$post_type}:{$meta_key} (5. parametre olarak string $post_type de iletilerek)
updated_post_metagatographql:updated_post_meta:{$meta_key}
gatographql:updated_post_meta:{$post_type}:{$meta_key} (5. parametre olarak string $post_type de iletilerek)
deleted_post_metagatographql:deleted_post_meta:{$meta_key}
gatographql:deleted_post_meta:{$post_type}:{$meta_key} (5. parametre olarak string $post_type de iletilerek)
added_term_metagatographql:added_term_meta:{$meta_key}
gatographql:added_term_meta:{$taxonomy}:{$meta_key} (5. parametre olarak string $taxonomy de iletilerek)
updated_term_metagatographql:updated_term_meta:{$meta_key}
gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (5. parametre olarak string $taxonomy de iletilerek)
deleted_term_metagatographql: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.