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
ถูกเรียก ดังนั้นหากคุณต้องการทำอะไรบางอย่างเมื่อคีย์ meta ถูกเพิ่มหรืออัปเดตให้แน่ใจว่าได้ใส่ทั้งในupdate*
และและadd*
hooks - แต่โปรดสังเกตว่าในขณะที่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
แต่นั่นเท่าที่ฉันจะได้รับ ฉันไม่เข้าใจวิธีใช้ แต่ตอนนี้ผมคิดว่าผมได้รับมัน :)