WordPress
समारोह: add_action ()
खोज…
वाक्य - विन्यास
- add_action ($ टैग, $ function_to_add)
- add_action ($ टैग, $ function_to_add, $ प्राथमिकता)
- add_action ($ टैग, $ function_to_add, $ प्राथमिकता, $ स्वीकृत_कार)
पैरामीटर
पैरामीटर | विवरण |
---|---|
$ टैग | (स्ट्रिंग) (आवश्यक) उस क्रिया का नाम जिसके लिए $function_to_add हुक किया जाता है |
$ function_to_add | ( कॉल करने योग्य ) (आवश्यक) फ़ंक्शन जिसे $tag द्वारा इंगित की गई कार्रवाई निष्पादित होने पर बुलाया जाना चाहिए |
$ प्राथमिकता | (int) (वैकल्पिक) डिफ़ॉल्ट मान: 10 उस आदेश को निर्दिष्ट करने के लिए उपयोग किया जाता है जिसमें किसी विशेष कार्रवाई से जुड़े कार्यों को निष्पादित किया जाता है। कम संख्याएं पहले निष्पादन के साथ मेल खाती हैं, और उसी प्राथमिकता के साथ कार्यों को उस क्रम में निष्पादित किया जाता है जिसमें उन्हें कार्रवाई में जोड़ा गया था। |
$ accepted_args | (int) (वैकल्पिक) डिफ़ॉल्ट मान: 1 तर्कों की संख्या फ़ंक्शन स्वीकार करता है। |
टिप्पणियों
add_action()
फ़ंक्शन एक विशेष कार्य "टैग" या नाम के साथ एक PHP फ़ंक्शन को add_action()
एक एक्शन हुक बनाता है। जब एक विशिष्ट टैग के साथ do_action()
(या do_action_ref_array()
) के लिए कॉल द्वारा कार्रवाई "ट्रिगर" होती है, तो उस टैग पर सभी कार्य "हुक" किए जाएंगे।
ज्यादातर मामलों में, इस फ़ंक्शन का उपयोग किसी थीम के functions.php
फ़ाइल या एक प्लगइन फ़ाइल - या किसी अन्य स्रोत फ़ाइल को लोड करके किया जाना चाहिए।
यह फ़ंक्शन प्लगइन एपीआई का एक हिस्सा है
बेसिक एक्शन हुक
add_action()
का सबसे मूल अनुप्रयोग add_action()
एक वर्डप्रेस इंस्टॉलेशन के सोर्स-कोड में किसी निश्चित स्थान पर निष्पादित किए जाने वाले कस्टम कोड को जोड़ना है - या तो वर्डप्रेस के कोर द्वारा आपूर्ति की गई क्रियाओं का उपयोग करना, या तीसरे पक्ष के कोड जैसे प्लगइन्स और द्वारा बनाए गए हैं। विषयों।
साइट के <head></head>
अनुभाग में सामग्री जोड़ने के लिए - एक ऐड <link>
मेटा एलिमेंट से कहें जहां साइट के लिए कॉपीराइट जानकारी मिल सकती है - add_action()
एक फ़ंक्शन को प्रिंट करने के लिए उपयोग किया जा सकता है जो प्रिंट करता है 'wp_head'
एक्शन के लिए उपयुक्त मार्कअप (जो वर्डप्रेस <head>
सेक्शन बनाते समय "ट्रिगर" हो जाता है):
function add_copyright_meta_link() {
echo( '<link rel="copyright" href="' . get_home_url() . '/copyright">' );
}
add_action( 'wp_head', 'add_copyright_meta_link' );
कार्रवाई हुक प्राथमिकता
किसी भी कार्य के लिए किसी भी संख्या में "हुक" किया जा सकता है। कुछ उदाहरणों में एक add_action()
कार्य के लिए दूसरों से पहले या बाद में निष्पादित करना महत्वपूर्ण है, जो कि add_action()
लिए तीसरा पैरामीटर है, $priority
खेल में आती है।
यदि $priority
तर्क छोड़ दिया जाता है, तो फ़ंक्शन 10
की डिफ़ॉल्ट प्राथमिकता के साथ संलग्न किया जाएगा। जब कार्रवाई "ट्रिगर" होती है, तो "झुका हुआ" फ़ंक्शन को सबसे छोटी $priority
साथ जोड़े जाने वाले कार्यों के साथ शुरू किया जाएगा, और सबसे बड़ी $priority
कार्यों के लिए प्रगति होगी। उसी प्राथमिकता को साझा करने वाले किसी भी हुक किए गए कार्यों को उस क्रम में बुलाया जाएगा जो उन्हें जोड़ा गया था (जिस क्रम में उनके संबंधित add_action()
कॉल निष्पादित किए गए थे)।
उदाहरण के लिए, कहते हैं कि एक तृतीय-पक्ष प्लगइन बाहरी ई-कॉमर्स साइट के लिए एक संबद्ध लिंक के लिए daily-deal
पृष्ठ पर आगंतुकों को अग्रेषित करने के लिए 'template_redirect'
कार्रवाई के लिए झुके हुए फ़ंक्शन का उपयोग कर रहा है, लेकिन आप पुनर्निर्देशन पसंद करेंगे केवल लॉग-इन उपयोगकर्ताओं के लिए होता है। लॉग-आउट करने वाले आगंतुकों को साइन-इन पृष्ठ पर भेजने के लिए आपको अपने स्वयं के 'template_redirect'
हुक का उपयोग करना होगा। यह निर्धारित करने के बाद कि तृतीय-पक्ष प्लगइन 10
की डिफ़ॉल्ट $piority
के साथ कार्य करता है, आप यह सुनिश्चित कर सकते हैं कि आपका फ़ंक्शन 9
प्राथमिकता के साथ यह सुनिश्चित कर सके कि आपका लॉग-इन पहले होता है:
function redirect_deal_visitors_to_login() {
if( is_page( 'daily-deal' ) && !user_is_logged_in() ) {
wp_redirect( wp_login_url() );
exit();
}
}
add_action( 'template_redirect', 'redirect_deal_visitors_to_login', 9 );
हुकिंग क्लास एंड ऑब्जेक्ट मेथड्स टू एक्शन
PHP कक्षाएं कोड संगठन को बेहतर बनाने और नामकरण टकराव को कम करने के लिए शक्तिशाली उपकरण हैं। कुछ बिंदु या किसी अन्य पर, क्लास पद्धति के लिए एक्शन हुक बनाने का प्रश्न अनिवार्य रूप से उठता है।
$function_to_add
तर्क को अक्सर फ़ंक्शन के नाम से युक्त एक स्ट्रिंग के रूप में दिखाया जाता है, हालांकि तर्क का डेटा-प्रकार वास्तव में एक " कॉल करने योग्य " है, जिसे हमारे उद्देश्यों के लिए "एक फ़ंक्शन या विधि का संदर्भ" के रूप में अभिव्यक्त किया जा सकता है।
कई कॉल करने योग्य प्रारूप हैं जिनका उपयोग कक्षाओं और वस्तुओं पर संदर्भ विधियों के लिए किया जा सकता है। हालांकि सभी मामलों में, संदर्भित विधि सार्वजनिक रूप से दिखाई देनी चाहिए। एक विधि तब सार्वजनिक होती है जब इसे या तो public
कीवर्ड के साथ उपसर्ग किया जाता है, या कोई दृश्यता कीवर्ड बिल्कुल नहीं होता है (जिस स्थिति में यह विधि सार्वजनिक रूप से चूक जाती है)।
ऑब्जेक्ट मेथड एक्शन हुक
ऑब्जेक्ट विधियों को किसी वर्ग के किसी विशेष उदाहरण पर निष्पादित किया जाता है।
class My_Class {
// Constructor
function My_Class() {
// (Instantiation logic)
}
// Initialization function
public function initialize() {
// (Initialization logic)
}
}
उपर्युक्त वर्ग को निम्न प्रकार से समझने के बाद,
$my_class_instance = new My_Class();
initialize()
विधि आमतौर पर $my_class_instance->initialize();
कॉल करके ऑब्जेक्ट पर लागू की जाएगी $my_class_instance->initialize();
। 'init'
वर्डप्रेस क्रिया के लिए विधि को हुक करना एक सरणी को उदाहरण के संदर्भ में पास करके किया जाता है और एक स्ट्रिंग जिसमें ऑब्जेक्ट विधि का नाम होता है:
add_action( 'init', [ $my_class_instance, 'initialize' ] );
यदि add_action()
को ऑब्जेक्ट विधि के भीतर कहा जाता है, तो $this
छद्म चर का उपयोग भी किया जा सकता है:
class My_Class {
// Constructor
function My_Class() {
// (Instantiation logic)
add_action( 'init', [ $this, 'initialize' ] );
}
// Initialization function
public function initialize() {
// (Initialization logic)
}
}
क्लास मेथड एक्शन हुक
क्लास के तरीकों को किसी विशेष उदाहरण के बजाय एक क्लास पर स्टेटिक रूप से निष्पादित किया जाता है। निम्न वर्ग को देखते हुए,
class My_Class {
// Initialization function
public static function initialize() {
// (Initialization logic)
}
}
initialize()
विधि आमतौर पर ::
स्कोप-रिज़ॉल्यूशन ऑपरेटर, यानी My_Class::initialize();
का उपयोग करके लागू किया जाएगा My_Class::initialize();
। एक WordPress के लिए एक स्थिर वर्ग विधि हुकिंग कुछ अलग तरीके से किया जा सकता है:
एक सरणी से बना एक स्ट्रिंग का उपयोग करके वर्ग नाम, और एक स्ट्रिंग जिसमें विधि का नाम है:
add_action( 'init', [ 'My_Class', 'initialize' ] );
किसी स्ट्रिंग को पास करना, जिसमें विधि का पूरा संदर्भ शामिल है, जिसमें
::
ऑपरेटर:add_action( 'init', 'My_Class::initialize' );
यदि
add_action()
को एक स्थिर वर्ग विधि के भीतर कहा जाता है, तोself
या__CLASS__
मैजिक-स्थिरांक का उपयोग वर्ग नाम के स्थान पर किया जा सकता है। ध्यान दें कि यह आम तौर पर अनजाने में होता है क्योंकि इन वस्तुओं के मूल्य वर्ग की विरासत के मामले में कुछ प्रति-सहज होते हैं।class My_Class { // Setup function public static function setup_actions() { add_action( 'init', 'self::initialize' ); } // Initialization function public static function initialize() { // (Initialization logic) } }