Các update_post_meta
hook được gọi từ update_metadata()
hàm chung hơn , vì vậy bạn có thể không tìm thấy nó trực tiếp. Ba móc là:
update_post_metadata
, một bộ lọc cho phép bạn "đánh cắp" bản cập nhật siêu dữ liệu và làm một cái gì đó khác. Nếu bạn kết nối một hàm trả về boolean, việc thực thi dừng ở đó và boolean được trả về.
update_post_meta
, một hành động được gọi trước khi dữ liệu được cập nhật trong cơ sở dữ liệu.
updated_post_meta
, một hành động được gọi sau khi dữ liệu được cập nhật trong cơ sở dữ liệu.
Nếu khóa meta không tồn tại trong cơ sở dữ liệu nào, update_metadata()
chuyển điều khiển đến add_metadata()
, trong đó có các móc tương tự add_post_metadata
, add_post_meta
và added_post_meta
. Điều này xảy ra trước khi update[d]_post_meta
được gọi. Vì vậy, nếu bạn muốn làm gì đó khi khóa meta được thêm hoặc cập nhật, hãy nhớ móc vào cả móc update*
và add*
móc - nhưng lưu ý rằng trong khi updated_*
và added_*
hành động vượt qua các tham số tương tự, update_*
và add_*
không ( add_post_meta
không vượt qua meta ID trước) .
delete_metadata()
có móc tương tự: delete_post_metadata
, delete_post_meta
và deleted_post_meta
.
Mã mẫu:
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
sử dụngupdate_metadata
và trong đó, có những cái móc đếnadded_post_meta
và đóupdated_post_meta
là những gì tôi có thể nhận được. Tôi không hiểu cách sử dụng. Nhưng bây giờ tôi nghĩ rằng tôi đã có nó :)