update_post_metaKancalar 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_metaveritabanındaki veriler güncellenmeden önce çağrılan bir eylem .
updated_post_metaveritabanı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_metave 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_metailk meta kimliği geçmez) .
delete_metadata()benzer kancalar vardır: delete_post_metadata, delete_post_metave 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_metakullanarakupdate_metadatave orada, hiç kancalar vardıadded_post_metaveupdated_post_metakadarıyla alabilir olduğunca ama şu. Nasıl kullanılacağını anlamadım. Ama şimdi anladım sanırım :)