update_post_meta
Kancalar daha genel çağrılan update_metadata()
doğrudan buldum olmayabilirdi bu yüzden, işlevi. Üç kanca:
update_post_metadata
, meta veri güncellemesini "kaçırmanıza" ve başka bir şey yapmanıza olanak sağlayan bir filtredir. Bir boole döndüren bir işlevi bağlarsanız, yürütme orada durur ve boole döndürülür.
update_post_meta
veritabanındaki veriler güncellenmeden önce çağrılan bir eylem .
updated_post_meta
veritabanındaki veriler güncellendikten sonra çağrılan bir eylem .
Meta anahtarı henüz veritabanında olmasaydı, update_metadata()
kontrol geçer add_metadata()
benzer kancalar olan, add_post_metadata
, add_post_meta
ve added_post_meta
. Bu update[d]_post_meta
çağrılmadan önce olur. Meta tuşu eklendiğinde size bir şey yapmak istiyorum Yani eğer ya güncellenen emin ikisi içine kanca olmak update*
ve add*
fakat ederken bildirimi o - kancalar updated_*
ve added_*
eylemler benzer parametreleri geçmek update_*
ve add_*
yok ( add_post_meta
ilk meta kimliği geçmez) .
delete_metadata()
benzer kancalar vardır: delete_post_metadata
, delete_post_meta
ve deleted_post_meta
.
Basit kod:
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
kullanarakupdate_metadata
ve orada, hiç kancalar vardıadded_post_meta
veupdated_post_meta
kadarıyla alabilir olduğunca ama şu. Nasıl kullanılacağını anlamadım. Ama şimdi anladım sanırım :)