नई कार्रवाई के साथ मौजूदा प्लगइन कार्रवाई को कैसे ओवरराइड करें


18

मैं एक प्लगइन का उपयोग कर रहा हूँ। यह इस तरह की कार्रवाई है।

add_action('publish_post', 'old_action');
function old_action($pid) {
    "code goes here"
    }
}

मैं इस प्लगइन के लिए एक मॉड्यूल लिख रहा हूँ। इसलिए मुझे अपने नए एक्शन फंक्शन के साथ उस पुराने एक्शन फंक्शन को ओवरराइड करना होगा।

यह मेरा नया फंक्शन है।

function new_action($pid) {
      "code goes here"
        }
    }

मैं हुक का उपयोग करके अपने new_action फ़ंक्शन के साथ उस पुराने_करण फ़ंक्शन को बदलना चाहता हूं। क्या कोई मेरी मदद कर सकता है?

धन्यवाद

जवाबों:


33

आप remove_action()फ़ंक्शन का उपयोग कर सकते हैं , जैसे:

remove_action('publish_post', 'old_action');
add_action('publish_post', 'new_action');

यह ध्यान रखना महत्वपूर्ण है कि अगर पुराने_करण को प्राथमिकता पैरामीटर के साथ जोड़ा गया था, तो आपको उसे remove_actionकॉल में जोड़ना होगा , अन्यथा वह इसे हटाने में विफल रहेगा। अन्य निहितार्थ हैं अगर एक वर्ग के भीतर old_action जोड़ा गया था। अधिक जानकारी के लिए यहां देखें ।


3
+1 को इस स्पष्टीकरण के साथ कि हटाए जाने वाले फ़ंक्शन को जोड़ने के बाद हटाने की कार्रवाई को बुलाया जाना चाहिए।
स्टीफन हैरिस

2
'after_setup_theme' Remove_action के लिए एक अच्छी जगह की तरह लगता है। देखें: wordpress.stackexchange.com/questions/170663/…
DigitalDesignDj
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.