这个update_post_meta
钩子是从更通用的update_metadata()
函数,因此您可能无法直接找到它。这三个挂钩是:
如果数据库中还不存在元密钥,
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 );
}
}