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जहां तक मैं मिल सकता है के रूप में लेकिन thats। मुझे समझ में नहीं आया कि कैसे उपयोग करना है। लेकिन अब मुझे लगता है कि मुझे यह मिल गया है :)