Mengotomatisasi tugas
Jalankan GraphQL Persisted Query secara otomatis saat suatu peristiwa terjadi di situs.
Buat otomatisasi langsung melalui editor WordPress. Pemicu otomatisasi adalah action hook WordPress apa pun, dan aksinya adalah eksekusi sebuah persisted query GraphQL.
Mengakses semua aturan otomatisasi
Dengan mengklik "Automation Rules" pada menu plugin, daftar semua aturan otomatisasi yang telah dibuat akan ditampilkan:

Membuat aturan otomatisasi baru
Klik "Add New Automation Rule" untuk menambahkan entri baru.
Di layar editor, kita harus menyediakan konfigurasi untuk:
- Pemicu otomatisasi
- Aksi otomatisasi

Aksi otomatisasi
Aksi otomatisasi menunjukkan persisted query GraphQL mana yang akan dieksekusi.
Konfigurasikan item ini dengan elemen-elemen berikut:
Persisted Query: Pilih persisted query GraphQL mana yang akan dieksekusi (di antara semua yang memiliki status publish atau private)
Static GraphQL Variables: Sediakan string JSON dengan nilai untuk variabel GraphQL dalam persisted query. Ini adalah nilai statis.
Contoh:
{
"emailSubject": "New post on the site"
}Nilai-nilai ini akan digantikan oleh variabel GraphQL "dinamis" (lihat Pemicu otomatisasi di bawah).
Operation name (opsional): Jika persisted query berisi lebih dari satu operasi, Anda dapat menunjukkan operasi mana yang akan dieksekusi (secara default, adalah yang terakhir).
Execute as user (opsional): Eksekusi persisted query GraphQL dengan masuk sebagai pengguna tertentu, dengan menyediakan slug pengguna.

Pemicu otomatisasi
Sebuah pemicu otomatisasi menunjukkan action hook WordPress mana yang akan memicu eksekusi Persisted Query. Kita dapat menyediakan lebih dari satu (misalnya: untuk bereaksi hanya saat mengedit sebuah post atau halaman, kita dapat menyediakan hook edit_post_post dan edit_post_page).
Konfigurasikan item ini dengan elemen-elemen berikut:
Hook name: Nama action hook WordPress.
Dynamic GraphQL Variables: Sediakan string JSON yang memetakan variabel GraphQL ke argumen yang diberikan ke fungsi hook. Nilai dinamis ini kemudian akan diberikan ke query saat runtime.
Kamus JSON harus berisi nama variabel GraphQL sebagai kunci, dan posisi argumen dalam action hook sebagai nilainya.
Contoh, hook draft_post (dari post status transitions) menyediakan $post_id sebagai argumen pertama. Maka, JSON berikut menunjukkan bahwa variabel GraphQL $postID akan menerima nilai $post_id yang diteruskan ke hook:
{
"postID": 1
}(Dalam contoh ini, 1 berarti "nilai dari argumen ke-1 oleh draft_post".)
Jika kunci yang sama digunakan untuk variabel GraphQL "dinamis" dan "statis" (lihat Aksi otomatisasi di atas), maka nilai dinamis akan diprioritaskan.

Pemetaan hook WordPress
Ada hook WordPress yang tidak dapat langsung digunakan dalam Automation Configurator, karena hook tersebut menyediakan objek PHP melalui hook, yang tidak dapat dimasukkan sebagai variabel GraphQL.
Beberapa hook ini telah dipetakan oleh Gato GraphQL, dengan memicu hook baru yang diawali dengan gatographql: dan nama hook yang sama, serta meneruskan ID objek yang sesuai sebagai variabel, yang dapat dimasukkan sebagai variabel GraphQL.
Contoh, hook WordPress draft_to_publish meneruskan $post sebagai variabel (bertipe WP_Post). Gato GraphQL memetakan hook ini sebagai gatographql:draft_to_publish, dan meneruskan $postId (bertipe int) sebagai variabel.
Tabel berikut mencantumkan hook WordPress yang telah dipetakan:
| Hook WordPress | Hook yang dipetakan oleh Gato GraphQL |
|---|---|
{$old_status}_to_{$new_status} (meneruskan WP_Post $post) | gatographql:{$old_status}_to_{$new_status} (meneruskan int $postId, string $postType) |
Selain itu, Gato GraphQL memicu ulang beberapa hook WordPress dengan informasi tambahan pada nama hook, untuk mempermudah penangkapan dan otomatisasi peristiwa tertentu.
Contoh, hook yang membuat, memperbarui, dan menghapus nilai meta dipicu dengan menyertakan meta key sebagai bagian dari nama hook. Maka, sebuah otomatisasi dapat dipicu saat gambar unggulan ditetapkan ke sebuah post, melalui hook gatographql:added_post_meta:_thumbnail_id.
Berikut adalah hook tambahan Gato GraphQL:
| Hook WordPress sumber | Hook Gato GraphQL yang dipicu |
|---|---|
{$old_status}_to_{$new_status}(Meneruskan 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}(Semua meneruskan int $postId, string $postType) |
created_term | gatographql:created_term:{$taxonomy} |
set_object_terms | gatographql:set_object_terms:{$taxonomy}gatographql:updated_object_terms:{$taxonomy} (Saat ada perbedaan antara term lama dan baru) |
added_post_meta | gatographql:added_post_meta:{$meta_key}gatographql:added_post_meta:{$post_type}:{$meta_key} (Juga meneruskan string $post_type sebagai parameter ke-5) |
updated_post_meta | gatographql:updated_post_meta:{$meta_key}gatographql:updated_post_meta:{$post_type}:{$meta_key} (Juga meneruskan string $post_type sebagai parameter ke-5) |
deleted_post_meta | gatographql:deleted_post_meta:{$meta_key}gatographql:deleted_post_meta:{$post_type}:{$meta_key} (Juga meneruskan string $post_type sebagai parameter ke-5) |
added_term_meta | gatographql:added_term_meta:{$meta_key}gatographql:added_term_meta:{$taxonomy}:{$meta_key} (Juga meneruskan string $taxonomy sebagai parameter ke-5) |
updated_term_meta | gatographql:updated_term_meta:{$meta_key}gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (Juga meneruskan string $taxonomy sebagai parameter ke-5) |
deleted_term_meta | gatographql:deleted_term_meta:{$meta_key}gatographql:deleted_term_meta:{$taxonomy}:{$meta_key} (Juga meneruskan string $taxonomy sebagai parameter ke-5) |
Men-debug masalah
Jika otomatisasi belum dieksekusi, mungkin ada kesalahan pada konfigurasi otomatisasi, atau eksekusi persisted query.
Log Eksekusi
Lihat Pemecahan masalah untuk detail lebih lanjut.
Log kesalahan
Semua masalah konfigurasi (seperti string JSON yang salah format untuk variabel GraphQL, atau menunjuk ke persisted query yang telah dihapus) dan kesalahan eksekusi (seperti pengecualian yang dilempar, atau entri errors dalam query GraphQL) dikirim ke error_log fungsi PHP, sehingga dicetak dalam log kesalahan WordPress.
Log kesalahan ini diawali dengan string [Gato GraphQL].