Ketika sebuah posting diperbarui ada beberapa kait yang dipecat:
'pre_post_update'adalah tindakan yang dipecat tepat sebelum posting diperbarui, argumen yang diberikan adalah 2: $post_IDdan $dataitu adalah array dari semua kolum basis data lain dari tabel posting
'transition_post_status'adalah sebuah hook yang diluncurkan saat pembaruan, dan memberikan 3 argumen: $ new_post_status, $old_post_statusdan $post(objek).
- Lalu, ada 2 pengait transisi lainnya yang dipecat, tetapi dinamai dinamis, artinya tindakan efektif yang dipecat tergantung pada status kiriman lama dan baru.
"{$old_status}_to_{$new_status}"dan "{$new_status}_{$post->post_type}". Pertama melewati satu-satunya objek posting sebagai argumen, yang kedua melewati id posting dan objek posting. Temukan dokumentasi di sini .
'edit_post'yang lolos 2 argumen: $post_IDdan $post(objek)
'post_updated'yang lulus 3 argumen: $post_ID, $post_after(pasca objek setelah update), $post_before(pasca objek sebelum update)
- Kait dinamis lain:
"save_post_{$post->post_type}"itu tergantung pada jenis posting, misalnya untuk posting standar 'save_post_post'dan untuk halaman ini 'save_post_page', buku ini lulus 3 argumen: $post_ID, $post(object) dan $updateitu adalah boolean (true atau false) itu benar ketika Anda melakukan update, di Bahkan kail ini dipecat juga ketika sebuah pos disimpan untuk pertama kalinya.
- '
save_post' yang diaktifkan saat pembaruan dan penyimpanan pertama, dan memberikan 3 argumen yang sama dari hook sebelumnya.
- '
save_post_{$post_type}' yang diaktifkan saat pembaruan dan penyimpanan pertama, dan meneruskan 2 argumen pertama yang sama dari hook sebelumnya.
- Akhirnya Anda memiliki '
wp_insert_post' , yang dipecat saat pembaruan dan penyimpanan pertama, dan meneruskan 3 argumen yang sama dari 2 kait sebelumnya.
Hook ini dipecat setiap kali sebuah posting diperbarui, baik melalui halaman admin di backend dan melalui ketika diperbarui "secara manual" menggunakan wp_update_postatau wp_insert_postfungsi.
Ketika posting diperbarui menggunakan halaman admin ada kait tambahan yang dipecat, contohnya adalah 'update_post_redirect'atau 'post_updated_messages'. (Lihat ini dan ini jawaban WPSE untuk contoh penggunaan).
Perhatikan bahwa jika Anda ingin menggunakan beberapa argumen hook, itu bukan argumen pertama, Anda harus menyatakannya secara eksplisit add_action.
Misalnya jika Anda ingin menggunakan '$update'argumen (yang ke-3) dari 'save_post'kail yang perlu Anda tambahkan 3sebagai $accepted_argsparam add_action( lihat dokumen ):
// if you don't add 3 as as 4th argument, this will not work as expected
add_action( 'save_post', 'my_save_post_function', 10, 3 );
function my_save_post_function( $post_ID, $post, $update ) {
$msg = 'Is this un update? ';
$msg .= $update ? 'Yes.' : 'No.';
wp_die( $msg );
}
Catatan terakhir mengenai penentuan waktu : Anda harus yakin bahwa add_actiondipanggil sebelum tindakan dipicu, atau tidak akan melakukan apa pun.
Misalnya kode ini:
wp_update_post( $post );
add_action( 'save_post', 'my_function', 10, 3 );
tidak akan melakukan apa-apa, karena tindakan ditambahkan setelah kait ditembakkan. Ini sederhana untuk mengenalinya, dalam kode dunia nyata tidak selalu demikian.
save_post, apakah itu salah ketik di sini, atau apakah itu dalam kode asli Anda? juga, aktifkan debug saat mengembangkan.