Эти 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не проходит мета ID первого) ,
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это все, насколько я мог получить. Я не понял, как использовать. Но теперь я думаю, что у меня это получилось :)