मुखपृष्ठ » वर्डप्रेस » थीम अनुकूलन में वर्डप्रेस एक्शन हुक का उपयोग कैसे करें

    थीम अनुकूलन में वर्डप्रेस एक्शन हुक का उपयोग कैसे करें

    वर्डप्रेस चाइल्ड थीम एक थीम के लुक और फील को कस्टमाइज़ करने का अपेक्षाकृत आसान तरीका है। यदि थीम के विकल्प आपको पर्याप्त डिज़ाइन विकल्प प्रदान नहीं करते हैं, तो आप स्टाइल थीम नामक चाइल्ड थीम की डिफ़ॉल्ट स्टाइलशीट फ़ाइल में एक नया नियम जोड़ सकते हैं। लेकिन जब आप भी चाहते हैं तो क्या होता है थीम की कार्यक्षमता को संशोधित करें? यह उन मामलों में से एक है जब वर्डप्रेस कार्रवाई आपकी मदद के लिए आती है.

    वर्डप्रेस अपनी उच्च customizability की वजह से आंशिक रूप से इतना लोकप्रिय हो गया है। वर्डप्रेस कोर अलग-अलग हुक से भरा हुआ है जो डेवलपर्स को डिफ़ॉल्ट कार्यक्षमता को संशोधित करने या बढ़ाने में सक्षम बनाता है। इसके अलावा, हमें शामिल करने की अनुमति है कस्टम हुक हमारे विषयों और प्लगइन्स में अन्य डेवलपर्स को आसानी से हमारी कोड को उनकी जरूरतों को समायोजित करने में मदद करें.

    वर्डप्रेस हुक के बारे में

    वर्डप्रेस हुक कुछ हद तक वास्तविक जीवन के हुक के समान हैं, इस अर्थ में कि आप सही जगह पर अपनी इच्छित मछली पकड़ सकते हैं यदि आप उनका सही उपयोग करते हैं.

    आप ऐसा कर सकते हैं एक पकड़ा समारोह निकालें (जैसे आप निम्न स्तर के उपयोगकर्ताओं के लिए वर्डप्रेस एडमिन बार हटा सकते हैं), आप कर सकते हैं इसे बरकरार रखें तथा इसे बढ़ाओ अपनी स्वयं की कार्यक्षमता के साथ (जैसे आप किसी विषय में अधिक मेनू या विजेट क्षेत्र जोड़ सकते हैं), या आप कर सकते हैं इसे ओवरराइड करें (उदा। आप किसी कोर फ़ंक्शन के व्यवहार को संशोधित कर सकते हैं).

    वर्डप्रेस में दो अलग-अलग प्रकार के हुक हैं: कार्रवाई तथा फिल्टर. इस पोस्ट में हम देखेंगे कि हम कैसे कर सकते हैं थीम अनुकूलन में एक्शन हुक का उपयोग करें.

    वर्डप्रेस हुक कैसे काम करता है

    एक बहुत ही सरल भाषा का उपयोग करने के लिए, कार्रवाई संकेत मिलता है कि वर्डप्रेस पेज जीवनचक्र के दौरान कुछ हुआ है: साइट के कुछ हिस्सों को लोड किया गया है, कुछ विकल्प या सेटिंग्स सेट की गई हैं, प्लगइन्स या विजेट को इनिशियलाइज़ किया गया है, और इसी तरह.

    फिल्टर से अलग हैं कार्रवाई उनके स्वभाव में। वे इसके अभ्यस्त हैं के माध्यम से डेटा पास करें, तथा संशोधित करें, प्रबंधित करें या अवरोधन इसे स्क्रीन पर रेंडर करने से पहले या डेटाबेस में यूजर डेटा को सेव करने से पहले.

    वर्डप्रेस पेज जीवनचक्र के प्रत्येक महत्वपूर्ण मील के पत्थर पर या तो एक है कार्य या ए फिल्टर हुक जो हम कर सकते हैं डिफ़ॉल्ट व्यवहार को संशोधित करने के लिए हमारा कस्टम कोड जोड़ें हमारी जरूरतों के लिए.

    अनुरोध के दौरान चलने वाली कुछ क्रियाएं और फ़िल्टर उपयोगकर्ता एजेंट द्वारा किस पृष्ठ पर अनुरोध किए गए थे: उदाहरण के लिए, एकल पोस्ट अनुरोध में एकल पोस्ट से संबंधित हुक उपलब्ध हैं, लेकिन साइट के अन्य हिस्सों (जैसे व्यवस्थापक क्षेत्र) से संबंधित हुक नहीं कर रहे हैं.

    एक्शन हुक खोजें

    वर्डप्रेस कोडेक्स का एक्शन संदर्भ विभिन्न अनुरोधों के माध्यम से चलने वाले कार्यों का एक विस्तृत अवलोकन देता है। महत्वपूर्ण बात यह है कि यदि हम किसी कार्य को पूरा करना चाहते हैं तो हमें करना चाहिए सही जगह पर हुक, इसके पहले या बाद में नहीं, अन्यथा कार्रवाई पूरी नहीं होगी.

    इसलिए उदाहरण के लिए अगर हम चाहते हैं किसी साइट पर हमारा Google Analytics कोड जोड़ें हमारे लिए आवश्यक है फूटर लोड होने से ठीक पहले हमारी क्रिया को हुक करें.

    यदि हम थीम अनुकूलन के बारे में बात करते हैं, तो एक्शन हुक दो अलग-अलग स्थानों से आ सकते हैं: से वर्डप्रेस कोर तथा विषय ही. ऐसे थीम हैं जिनमें बिल्कुल भी हुक नहीं है, लेकिन अन्य डेवलपर्स को कुछ या कई के साथ प्रदान करते हैं - यह हमेशा थीम लेखक की पसंद है। डिफॉल्ट ट्वेंटी फिफ्टीन थीम में 'ट्वायफाइंड_क्रेडिट्स' के नाम से पाद अनुकूलन के लिए केवल एक एक्शन हुक है.

    यदि आप स्रोत कोड ब्राउज़ करना पसंद करते हैं, तो आप आसानी से एक्शन हुक भी पा सकते हैं। कार्रवाई हुक do_action () वर्डप्रेस फ़ंक्शन के साथ कोड में जोड़े जाते हैं.

    यदि आप अधिक उन्नत कोड संपादक में अभिव्यक्ति 'do_action' के लिए त्वरित खोज चलाते हैं - जैसे मैंने नीचे ग्रहण में किया था - आप उन स्थानों के बारे में एक सूची देख सकते हैं जहां आप अपनी कस्टम कार्यक्षमता को कोर में हुक कर सकते हैं। में खोजा / WP-शामिल / फ़ोल्डर, लेकिन आप के लिए एक खोज भी चला सकते हैं / WP-व्यवस्थापक / फ़ोल्डर जिसमें वर्डप्रेस डैशबोर्ड से संबंधित कार्रवाई हुक हैं (व्यवस्थापक क्षेत्र).

    अच्छी बात यह है कि एक्शन हुक के नाम आमतौर पर बहुत आत्म-व्याख्यात्मक होते हैं, लेकिन वहाँ है आमतौर पर कोड के अंदर एक अच्छी टिप्पणी यह आपको अधिक ज्ञान दे सकता है कि क्या दिए गए एक्शन हुक उस कारण के लिए अच्छे हैं जो आप इसके लिए उपयोग करना चाहते हैं.

    उदाहरण के लिए 'widgets_init' एक्शन हुक से पहले कोड टिप्पणी कहती है कि यह “सभी डिफ़ॉल्ट वर्डप्रेस विजेट के बाद आग लग गई है”. यदि आप इस एक्शन हुक से पहले कोड पर एक नज़र डालते हैं, तो आप इससे पहले सभी डिफ़ॉल्ट WP विजेट्स की आरंभीकरण पा सकते हैं - ताकि आप सुनिश्चित कर सकें कि टिप्पणी झूठ नहीं है, और यदि आप अपना स्वयं का कस्टम विजेट पंजीकृत करना चाहते हैं, तो यह सही जगह होगी.

    कई मामलों में स्रोत कोड हमें कोडेक्स की तुलना में बहुत अधिक जानकारी प्रदान करता है, इसलिए यह सीखना एक अच्छा विचार हो सकता है कि इसमें जल्दी से कैसे नेविगेट करें.

    अपनी खुद की क्रियाओं को जोड़ें

    जब आप अपनी कार्रवाई जोड़ना चाहते हैं, तो आपको इसकी आवश्यकता होगी एक कस्टम फ़ंक्शन बनाएँ तथा इस फ़ंक्शन को एक विशिष्ट एक्शन हुक से बांधें add_action () वर्डप्रेस फ़ंक्शन का उपयोग करके। Add_action () फ़ंक्शन के साथ जोड़े गए कस्टम क्रियाएं आमतौर पर होती हैं मौके पर ट्रिगर किया गया जब कोर उपयुक्त do_action () फ़ंक्शन को कॉल करता है.

    आइए एक साधारण उदाहरण देखें.

    कैसे आप की जरूरत हुक खोजने के लिए

    मान लें कि आप अपनी साइट पर अपने कस्टम फ़ेविकॉन को जोड़ना चाहते हैं। सबसे पहले, आपको सही एक्शन हुक खोजने की आवश्यकता है जिसे आप अपनी कार्यक्षमता से बांध सकते हैं.

    चलो सोचते है। यदि आप एक सादे HTML पृष्ठ पर एक फ़ेविकॉन जोड़ना चाहते हैं, तो आप इसे कहाँ रखेंगे? बेशक, आपको इसे अंदर रखने की आवश्यकता है निम्नलिखित मार्कअप के साथ HTML फ़ाइल का अनुभाग:

      

    तो आपको जो एक्शन हुक चाहिए वह होना चाहिए के लोडिंग से संबंधित है अनुभाग.

    (1) क्रिया संदर्भ खोलें, और देखें कि उसे क्या पेश करना है। हम भाग्यशाली हैं, जैसे कि हम क्रियाओं के माध्यम से ब्राउज़ करते हैं, हम केवल एक ही पा सकते हैं, wp_head, जो कि इसके नाम के आधार पर भाई-बहन के लोडिंग से संबंधित होने के लिए है। अनुभाग.

    (2) निश्चित होने के लिए, आइए वर्डप्रेस कोडेक्स में प्रलेखन की जांच करें. कोडेक्स सलाह देता है कि “आप इस हुक का उपयोग ब्राउज़र में अपने फ़ंक्शन इको आउटपुट के द्वारा करते हैं”, इसलिए अभी यह हमारे लिए एकदम सही है। लेकिन इसे सोर्स कोड में देखें.

    (3) चूंकि यह हुक व्यवस्थापक क्षेत्र से संबंधित नहीं है, इसलिए हमें अपनी खोज को चलाने की आवश्यकता होगी / WP-शामिल / फ़ोल्डर। यदि हम 'wp-head' शब्द की खोज करते हैं तो हमें कई परिणाम मिलेंगे क्योंकि यह विशिष्ट क्रिया WP कोर द्वारा कई बार उपयोग की जाती है.

    हमें उस स्थान की तलाश करनी होगी जहां वह परिभाषित हो, इसलिए अभिव्यक्ति की खोज करें do_action ('wp_head'. ध्यान दें कि हमने कोष्ठकों को समाप्त नहीं किया है, क्योंकि हम सुनिश्चित नहीं कर सकते हैं कि इस कार्रवाई में पैरामीटर हैं या नहीं.

    ग्रहण केवल एक परिणाम देता है जो अंदर पाया जा सकता है /wp-includes/general-template.php फ़ाइल। एक्शन हुक परिभाषा से पहले की टिप्पणी कहती है कि यह “सामने के छोर पर हेड टैग में स्क्रिप्ट या डेटा प्रिंट करता है”, इसलिए अब हम निश्चित रूप से मृत हो सकते हैं wp_head कार्रवाई हुक की जरूरत है.

    पैरामीटर के लिए जाँच

    जब आप अपने स्वयं के कार्यों को जोड़ते हैं तो आपको यह भी सुनिश्चित करने की आवश्यकता होती है कि आप जिस हुक का उपयोग करना चाहते हैं वह पैरामीटर लेता है या नहीं। आप इसे do_action () फ़ंक्शन को देखकर आसानी से जान सकते हैं.

    Do_action () फ़ंक्शन का सिंटैक्स निम्न है:

     do_action ('name_of_action' [, $ पैरामीटर 1, $ पैरामीटर 2, ...]) 

    केवल कार्रवाई के नाम की आवश्यकता है, पैरामीटर वैकल्पिक हैं। यदि आपको do_action () फ़ंक्शन के प्रासंगिक कॉल में तर्क मिलते हैं, तो आपको करने की आवश्यकता है उन्हें आपके द्वारा बनाए गए कस्टम फ़ंक्शन की घोषणा में शामिल करें.

    यदि आपको कोई नहीं मिलता है, तो आपके कस्टम फ़ंक्शन को तर्कों के बिना काम करना होगा। Wp_head एक्शन हुक की do_action () परिभाषा में, कोई पैरामीटर नहीं हैं.

    आइए इसकी तुलना एक एक्शन हुक से करें जो एक पैरामीटर लेता है। 'Wp_register_sidebar_widget' नामक एक्शन हुक एक पैरामीटर लेता है जिसे आपको हमेशा उस कस्टम फ़ंक्शन को पास करना होता है जिसे आप हुक से बांधते हैं.

    आइए दो मामलों के do_action () सिंटैक्स में अंतर देखें:

     do_action ('wp_head'); do_action ('wp_register_sidebar_widget', $ विजेट);

    पहले मामले में कोई पैरामीटर नहीं है, इसलिए कस्टम फ़ंक्शन निम्नलिखित सिंटैक्स का उपयोग करेगा:

     फ़ंक्शन my_function_without_parameters () ... 

    दूसरे मामले में एक पैरामीटर है जिसे आपको हमेशा अपने कस्टम फ़ंक्शन की घोषणा में एक तर्क के रूप में पारित करना होगा:

     फ़ंक्शन my_function_with_parameters ($ विजेट) … 

    कैसे अपने कस्टम समारोह हुक करने के लिए

    अब हमें वह सब कुछ पता है जिसकी हमें जरूरत है। चलो हमारे कस्टम फ़ंक्शन बनाते हैं जो हमारी साइट पर फ़ेविकॉन प्रदर्शित करेगा.

    सबसे पहले, बिना किसी तर्क के एक नया फ़ंक्शन बनाएं, फिर इसे add_action () वर्डप्रेस फ़ंक्शन की सहायता से wp_head एक्शन हुक से बांधें.

     समारोह custom_add_favicon () गूंज ’';  add_action ('wp_head', 'custom_add_favicon');

    आपको नाम पास करो एक्शन हुक का add_action () फ़ंक्शन के लिए पहले एक तर्क के रूप में, तो आप की जरूरत है अपने कस्टम फ़ंक्शन का नाम जोड़ें.

    ये add_action () के दो आवश्यक पैरामीटर हैं। इसके दो वैकल्पिक पैरामीटर भी हैं, प्राथमिकता तथा तर्क स्वीकार किए जाते हैं. आइए देखें कि इनका उपयोग कैसे करें.

    प्राथमिकताएँ परिभाषित करें

    यह कई मामलों में होता है कि एक ही हुक के लिए एक से अधिक कार्रवाई होती है। इसलिए जिसे पहले निष्पादित किया जाएगा? यह वह जगह है जहाँ हम इसका उपयोग कर सकते हैं $ प्राथमिकता वैकल्पिक पैरामीटर add_action () फ़ंक्शन के.

    हम प्राथमिकता को एक पूर्णांक के रूप में जोड़ते हैं, डिफ़ॉल्ट मूल्य 10. यदि हम चाहते हैं कि कोई कार्रवाई जल्दी निष्पादित हो, तो हम इसे कम मूल्य देते हैं, यदि हम चाहते हैं कि इसे बाद में निष्पादित किया जाए, तो हम इसे उच्च मूल्य देते हैं.

    इसलिए अगर हमें लगता है कि फ़ेविकॉन को जल्दी वहाँ जाने की ज़रूरत है, तो हम अपने पिछले add_action () कॉल को निम्न तरीके से बढ़ा सकते हैं:

     add_action ('wp_head', 'custom_add_favicon', 5); 

    कृपया ध्यान दें कि प्राथमिकताएं हमेशा होनी चाहिए अन्य कस्टम कार्यों के लिए अपेक्षाकृत निर्धारित है कि एक ही कार्रवाई हुक का उपयोग करें.

    स्वीकृत तर्क की संख्या जोड़ें

    यदि आप पैरामीटर लेने वाले एक्शन हुक का उपयोग करते हैं, तो आपको स्वीकृत तर्कों की संख्या को जोड़ना होगा। आइए देखें कि हमने पहले किस उदाहरण का उपयोग किया था.

    कार्रवाई हुक 'wp_register_sidebar_widget' एक पैरामीटर लेता है, इसलिए जब हम अपने कस्टम फ़ंक्शन को इस हुक से बांधते हैं, तो हमें add_action () फ़ंक्शन को कॉल करने पर इसे एक तर्क के रूप में शामिल करने की भी आवश्यकता होती है।.

    इस मामले में हमारा कोड इस तरह दिखेगा:

     फ़ंक्शन my_sidebar_widget_function ($ विजेट) // आपका कोड add_action ('wp_register_sidebar_widget', 'my_sidebar_widget_function', 10, 1); 

    ध्यान दें कि हमें चाहिए प्राथमिकता भी जोड़ें (हमने डिफ़ॉल्ट 10 को यहां चुना है) यह सुनिश्चित करने के लिए कि वर्डप्रेस जानता है कि प्रत्येक पैरामीटर का क्या मतलब है. यदि हमने प्राथमिकता छोड़ दी है, तो वर्डप्रेस मान सकता है कि 1 प्राथमिकता है जो सच नहीं है, क्योंकि यह स्वीकृत तर्कों की संख्या को इंगित करता है.

    निष्कर्ष

    आप थीम अनुकूलन में एक्शन हुक के साथ कई प्रयोग कर सकते हैं। उदाहरण के लिए आप अपनी कस्टम स्क्रिप्ट (JS) और शैलियाँ (CSS) wp_enqueue_scripts एक्शन हुक या अपने Google Analytics कोड को wp_footer एक्शन हुक के साथ जोड़ सकते हैं.

    आप ही नहीं कर सकते अपने स्वयं के कार्यों को जोड़ें, लेकिन आप भी कर सकते हैं पूर्ण कार्यक्षमताओं को हटा दें हटाने_ () फ़ंक्शन के उपयोग के साथ वर्डप्रेस कोर से जो add_action () के रूप में एक ही तर्क का उपयोग करता है.

    यदि आप एक थीम लेखक हैं, और आप एक एक्स्टेंसिबल थीम बनाना चाहते हैं, तो यह एक अच्छा विचार हो सकता है उपयुक्त टेम्पलेट फ़ाइलों में अपने स्वयं के कस्टम एक्शन हुक जोड़ें do_action () फ़ंक्शन के साथ.

    अगर आप ऐसा करना चाहते हैं, अन्य डेवलपर्स के मापदंडों के बारे में ध्यान से सोचें जो आपके विषय का उपयोग करेगा तर्कों के रूप में पारित करना होगा जब वे अपने कस्टम फंक्शंस में हुक करना चाहते हैं.

    अपने थीम के कस्टम एक्शन हुक के स्थानों को डिज़ाइन करते समय यह न भूलें कि यह कस्टम स्पॉट हुक को उन स्थानों पर शामिल करने के लिए बहुत अधिक समझ में नहीं आता है जहां वर्डप्रेस कोर के अपने हुक हैं.