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