Ці update_post_meta
гачки викликаються з більш загальної update_metadata()
функції, так що ви не могли б знайти його безпосередньо. Три гачки:
update_post_metadata
, фільтр, який дозволяє "викрасти" оновлення метаданих та зробити щось інше. Якщо ви підключите функцію, яка повертає булевий, виконання там зупиняється, і булеве повернення.
update_post_meta
, дія, яку викликають перед оновленням даних у базі даних.
updated_post_meta
, дія, яку викликають після оновлення даних у базі даних.
Якщо ключ мета не існує в базі даних ще, update_metadata()
передає управління add_metadata()
, яке має аналогічні гачки add_post_metadata
, add_post_meta
і added_post_meta
. Це відбувається, перш ніж update[d]_post_meta
телефонувати. Тож якщо ви хочете щось зробити, коли мета-ключ доданий чи оновлений, не забудьте підключити update*
і add*
гачки, і гачки - але зауважте, що хоча updated_*
і added_*
дії передають аналогічні параметри, update_*
а add_*
не ( add_post_meta
не передає мета-ідентифікатор спочатку) .
delete_metadata()
має аналогічні гачки: delete_post_metadata
, delete_post_meta
і deleted_post_meta
.
Приклад коду:
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
використанняupdate_metadata
та там, там , наскільки я міг дістати , були гачкиadded_post_meta
іupdated_post_meta
але. Я не розумів, як користуватися. Але зараз я думаю, що я це отримав :)