The update_post_metakait 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_metadipanggil. 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_metatidak melewati meta ID terlebih dahulu) .
delete_metadata()memiliki kait yang sama: delete_post_metadata, delete_post_metadan 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_metamenggunakanupdate_metadatadan di sana, ada kait untukadded_post_metadanupdated_post_metatapi itu sejauh yang saya bisa dapatkan. Saya tidak mengerti bagaimana cara menggunakannya. Tapi sekarang saya pikir saya sudah mendapatkannya :)