Mengelola WordPress
Mengelola WordPressMengotomatisasi tugas

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:

Aturan Otomatisasi
Aturan Otomatisasi

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
Editor Aturan Otomatisasi
Editor Aturan 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.

Aturan Otomatisasi - Eksekusi Persisted Query
Aturan Otomatisasi - Eksekusi Persisted Query

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.

Aturan Otomatisasi - Action hook
Aturan Otomatisasi - Action hook

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 WordPressHook 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 sumberHook Gato GraphQL yang dipicu
{$old_status}_to_{$new_status}
(Meneruskan 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}
(Semua meneruskan int $postId, string $postType)
created_termgatographql:created_term:{$taxonomy}
set_object_termsgatographql:set_object_terms:{$taxonomy}
gatographql:updated_object_terms:{$taxonomy} (Saat ada perbedaan antara term lama dan baru)
added_post_metagatographql:added_post_meta:{$meta_key}
gatographql:added_post_meta:{$post_type}:{$meta_key} (Juga meneruskan string $post_type sebagai parameter ke-5)
updated_post_metagatographql:updated_post_meta:{$meta_key}
gatographql:updated_post_meta:{$post_type}:{$meta_key} (Juga meneruskan string $post_type sebagai parameter ke-5)
deleted_post_metagatographql:deleted_post_meta:{$meta_key}
gatographql:deleted_post_meta:{$post_type}:{$meta_key} (Juga meneruskan string $post_type sebagai parameter ke-5)
added_term_metagatographql:added_term_meta:{$meta_key}
gatographql:added_term_meta:{$taxonomy}:{$meta_key} (Juga meneruskan string $taxonomy sebagai parameter ke-5)
updated_term_metagatographql:updated_term_meta:{$meta_key}
gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (Juga meneruskan string $taxonomy sebagai parameter ke-5)
deleted_term_metagatographql: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].