The update_post_meta
kait disebut dari lebih generik update_metadata()
fungsi, sehingga Anda tidak mungkin telah menemukan secara langsung. Tiga kait itu adalah:
update_post_metadata
, filter yang memungkinkan Anda untuk "membajak" pembaruan metadata dan melakukan sesuatu yang lain. Jika Anda menghubungkan fungsi yang mengembalikan boolean, eksekusi berhenti di sana dan boolean dikembalikan.
update_post_meta
, suatu tindakan yang dipanggil sebelum data diperbarui dalam database.
updated_post_meta
, suatu tindakan yang dipanggil setelah data diperbarui dalam database.
Jika kunci meta tidak ada dalam database belum, update_metadata()
melewati kontrol ke add_metadata()
, yang memiliki kait yang sama add_post_metadata
, add_post_meta
, dan added_post_meta
. Ini terjadi sebelum update[d]_post_meta
dipanggil. Jadi jika Anda ingin melakukan sesuatu ketika kunci meta ditambahkan atau diperbarui, pastikan untuk menghubungkan ke kait update*
dan add*
kait - tetapi perhatikan bahwa sementara updated_*
dan added_*
tindakan melewati parameter yang sama, update_*
dan add_*
jangan ( add_post_meta
tidak melewati meta ID terlebih dahulu) .
delete_metadata()
memiliki kait yang sama: delete_post_metadata
, delete_post_meta
dan deleted_post_meta
.
Kode sampel:
add_action( 'added_post_meta', 'wpse16835_after_post_meta', 10, 4 );
add_action( 'updated_post_meta', 'wpse16835_after_post_meta', 10, 4 );
function wpse16835_after_post_meta( $meta_id, $post_id, $meta_key, $meta_value )
{
if ( 'wpse16835_meta_key' == $meta_key ) {
wpse16835_do_something( $post_id, $meta_value );
}
}
add_action( 'deleted_post_meta', 'wpse16835_deleted_post_meta', 10, 4 );
function wpse16835_deleted_post_meta( $deleted_meta_ids, $post_id, $meta_key, $only_delete_these_meta_values )
{
if ( 'wpse16835_meta_key' == $meta_key ) {
wpse16835_undo_something( $post_id );
}
}
update_post_meta
menggunakanupdate_metadata
dan di sana, ada kait untukadded_post_meta
danupdated_post_meta
tapi itu sejauh yang saya bisa dapatkan. Saya tidak mengerti bagaimana cara menggunakannya. Tapi sekarang saya pikir saya sudah mendapatkannya :)