जब कोई पोस्ट अपडेट की जाती है तो कुछ हुक होते हैं जिन्हें निकाल दिया जाता है:
'pre_post_update'पोस्ट अपडेट होने से ठीक पहले एक कार्रवाई की गई , जो तर्क दिया गया वह 2 है: $post_IDऔर $dataवह पोस्ट टेबल के अन्य सभी डेटाबेस कॉलम्स की एक सरणी है
'transition_post_status'अद्यतन पर निकाल दिया गया हुक है, और 3 तर्क पास करें: $ new_post_status, $old_post_statusऔर $post(ऑब्जेक्ट)।
- फिर, अन्य 2 संक्रमण हुक निकाल दिए गए हैं, लेकिन वे गतिशील नाम हैं, इसका मतलब है कि निकाल दिया गया प्रभावी कार्रवाई पुराने और नए पद की स्थिति पर निर्भर करता है।
"{$old_status}_to_{$new_status}"और "{$new_status}_{$post->post_type}"। पहले केवल पोस्ट ऑब्जेक्ट को तर्क के रूप में पास करें, दूसरा पोस्ट आईडी और पोस्ट ऑब्जेक्ट को पास करें। यहां प्रलेखन का पता लगाएं ।
'edit_post'कि पास 2 तर्क: $post_IDऔर $post(वस्तु)
'post_updated'कि पास 3 तर्क: $post_ID, $post_after(पोस्ट वस्तु अद्यतन के बाद), $post_before(पोस्ट वस्तु अद्यतन करने से पहले)
- एक और गतिशील हुक:
"save_post_{$post->post_type}"जो पोस्ट प्रकार पर निर्भर करता है, जैसे कि मानक पदों के लिए'save_post_post' और पृष्ठों के लिए है 'save_post_page', इस हुक पास 3 तर्क: $post_ID, $post(वस्तु) और $updateहै कि एक बूलियन (सही या गलत) कि सच है जब आप एक अद्यतन प्रदर्शन करते हैं, में वास्तव में इस हुक को तब भी निकाल दिया जाता है जब कोई पोस्ट पहली बार सहेजी जाती है।
- '
save_post' जो अद्यतन और पहली बचत दोनों पर निकाल दिया जाता है, और पिछले हुक के समान 3 तर्क पास करते हैं।
- '
save_post_{$post_type}' जो अद्यतन और पहली बचत दोनों पर निकाल दिया जाता है, और पिछले हुक के पहले 2 तर्क पास करते हैं।
- अंत में आपके पास है '
wp_insert_post' है , जिसे अपडेट और पहली बचत दोनों पर निकाल दिया जाता है, और पिछले 2 हुक के समान 3 तर्क पास करते हैं।
ये हुक हर बार पोस्ट अपडेट होने के बाद, बैकेंड में एडमिन पेज के माध्यम से और "मैन्युअल रूप से" अपडेट किए जाने पर अपडेट किया जाता है wp_update_post या wp_insert_postफंक्शन्स में ।
जब पोस्ट को व्यवस्थापक पृष्ठों का उपयोग करके अपडेट किया जाता है तो अतिरिक्त हुक निकाल दिए जाते हैं, एक उदाहरण 'update_post_redirect'या है 'post_updated_messages'। ( यह देखें और उदाहरण के उदाहरणों के लिए इस WPSE उत्तर )।
ध्यान दें कि यदि आप कुछ हुक तर्क का उपयोग करना चाहते हैं, तो यह पहला नहीं है, एक आपको स्पष्ट रूप से add_actionकॉल में घोषित करना होगा ।
उदाहरण के लिए, यदि आप '$update'उस 'save_post'हुक के तर्क (जो कि तीसरा है) का उपयोग करना चाहते हैं, तो आपको ( डॉक्स देखें ) पर परम के 3रूप में जोड़ना होगा :$accepted_argsadd_action
// if you don't add 3 as as 4th argument, this will not work as expected
add_action( 'save_post', 'my_save_post_function', 10, 3 );
function my_save_post_function( $post_ID, $post, $update ) {
$msg = 'Is this un update? ';
$msg .= $update ? 'Yes.' : 'No.';
wp_die( $msg );
}
अंतिम नोट संबंध समय : आपको यकीन है कि add_actionकहा जाता है चाहिए कार्रवाई शुरू होने से पहले है, या यह कुछ भी नहीं करेगा।
जैसे यह कोड:
wp_update_post( $post );
add_action( 'save_post', 'my_function', 10, 3 );
कुछ नहीं करेगा, क्योंकि हुक निकाल दिए जाने के बाद कार्रवाई जोड़ दी जाती है। यहां इसे पहचानना सरल है, वास्तविक विश्व कोड में हमेशा ऐसा नहीं होता है।
save_post, क्या वह एक टाइपो है, या वह आपके मूल कोड में था? विकास करते समय डिबगिंग को भी सक्षम करें ।