वर्डप्रेस हुक: अपनी खुद की हुक जोड़ने के लिए शुरुआती गाइड

वर्डप्रेस हुक: अपनी खुद की हुक जोड़ने के लिए शुरुआती गाइड

वर्डप्रेस हुक: अपनी खुद की हुक जोड़ने के लिए शुरुआती गाइड
СОДЕРЖАНИЕ
02 июня 2020

प्लगइन्स हैं वर्डप्रेस बढ़ाने का तरीका। कारण यह है कि वर्डप्रेस को अपनी बोली लगाना इतना आसान है कि स्रोत कोड के पार कूड़े वाले हुक के साथ करना है.


पोस्ट प्रकाशित होते ही कुछ करना चाहते हैं? अंश लंबाई संशोधित करना चाहते हैं? अपने स्वयं के पृष्ठ दृश्य आँकड़े बनाना चाहते हैं? सही हुक ढूंढना आपको बस इतना करना है.

लेकिन प्लगइन्स के साथ ऐसा करने के बारे में क्या? हुक केवल वर्डप्रेस में उपयोग के लिए नहीं हैं, वे अनिवार्य रूप से एक डिज़ाइन पैटर्न हैं जिसे आप अपने काम में लागू कर सकते हैं.

इस लेख में, मैं आपको दिखाता हूँ कि आप अपने काम को आसान बनाने के लिए अपने हुक कैसे बना सकते हैं।.

व्हाई वी नीड हक्स

आपको यह दिखाने के लिए कि हुक कितना भयानक हो सकता है, आइए वास्तविक दुनिया से एक उदाहरण देखें: उन्नत कस्टम फ़ील्ड. यह प्लगइन आपको पोस्ट में लचीले कस्टम डेटा फ़ील्ड जोड़ने की अनुमति देता है; हम Google मानचित्र, संख्या फ़ील्ड, एकाधिक विकल्प और बहुत कुछ के बारे में बात कर रहे हैं.

यह सब एक अच्छा उपयोगकर्ता इंटरफ़ेस के माध्यम से किया जाता है, आपको बस इतना करना है कि सामने के छोर पर get_field () या the_field () जैसे फ़ंक्शन का उपयोग करें। अब तक सब ठीक है.

मान लें कि आप एक उपकरण का निर्माण कर रहे हैं जो लोगों को चीजों को बेचने की अनुमति देता है, कीमत के लिए एक क्षेत्र और मुद्रा के लिए एक की पेशकश करता है। आंतरिक रूप से, आप हमेशा डॉलर में कीमतों को संग्रहीत करना चाहते हैं, भले ही उपयोगकर्ता किस मुद्रा को प्रदर्शित करना चाहे.

यदि ACF (उन्नत कस्टम फ़ील्ड) में कोई हुक नहीं है, तो ऐसा करना मुश्किल होगा, आपको इस क्षेत्र को बचाने के लिए ACF के बाहर एक तंत्र का उपयोग करने की आवश्यकता हो सकती है। सौभाग्य से, हम द्वारा कवर किया गया एसीएफ़ / save_post कार्रवाई। सहेजने से पहले डॉलर में मूल्य परिवर्तित करने के लिए एक सही समय – आप इस कार्रवाई का उपयोग $ _POST डेटा को बचाने के लिए कर सकते हैं.

यह हुक का एक बहुत ही व्यावहारिक उदाहरण है, लेकिन एक और कारण है: भविष्य का प्रमाण और विस्तार। हुक एक एपीआई की तरह हैं, वे आपको दिशा देते हैं; बोलने के लिए एक ढांचा। यदि आप महत्वपूर्ण डेटा को सहेज रहे हैं, तो आपको स्वचालित रूप से एक हुक बनाना चाहिए ताकि अन्य यदि आवश्यक हो तो डेटा में हेरफेर कर सकें। यदि आप अपने आवेदन के लिए कुछ महत्वपूर्ण प्रदर्शित कर रहे हैं, उदाहरण के लिए चित्र, एक फिल्टर का उपयोग करें जो उपयोग की गई छवियों की संख्या को परिभाषित करने की अनुमति देता है.

कैसे हुक आंतरिक रूप से काम करते हैं

अपने स्वयं के हुक बनाने के लिए, हम ठीक वही करते हैं जो वर्डप्रेस आंतरिक रूप से करता है – सभी हुक किए गए कार्यों को निष्पादित करने के लिए do_action () और apply_filters () फ़ंक्शन का उपयोग करें। ये कैसे काम करते हैं, यह देखने के लिए वर्डप्रेस सोर्स कोड को जाने दें.

वर्डप्रेस आंतरिक रूप से एक अंश बनाने के लिए wp_trim_excerpt () फ़ंक्शन का उपयोग करता है। वर्डप्रेस 4.1 में यह फ़ंक्शन wp-शामिल / formatting.php में परिभाषित किया गया है, जो लाइन 2542 से शुरू होता है। यदि आप अपना ध्यान लाइन 2560 पर ले जाते हैं, तो आपको निम्नलिखित देखना चाहिए:

$ excerpt_length = apply_filters (‘excerpt_length’, 55);

इसका मतलब यह है कि निम्नलिखित है: प्रत्येक और हर फ़ंक्शन को excerpt_length हुक में चलाएं और अंतिम मान लौटाएं। मान लें कि आप 3 प्लगइन्स का उपयोग करते हैं जो अंश लंबाई को संशोधित करते हैं, तब क्या होता है? आइए इन फ़ंक्शन को एक स्थान पर इकट्ठा करें और देखें:

add_filter (‘excerpt_length’, ‘plugin_a_excerpt_modify’, 20);
plugin_a_excerpt_modify ($ लंबाई) {
वापसी की लंबाई – 10;
}

add_filter (‘excerpt_length’, ‘plugin_b_excerpt_modify’, 32);
plugin_b_excerpt_modify ($ लंबाई) {
वापसी 104;
}

add_filter (‘excerpt_length’, ‘plugin_c_excerpt_modify’, 16);
plugin_c_excerpt_modify ($ लंबाई) {
वापसी 20;
}

अंत में, अंश की लंबाई 104 शब्द लंबी होगी। उनकी प्राथमिकता के क्रम में फिल्टर निष्पादित किए जाते हैं। इसलिए plugin C के फंक्शन को पहले निष्पादित किया जाता है। यदि किसी अन्य फ़ंक्शन को हुक नहीं किया गया था, तो लंबाई अब 20 शब्द होगी। अगला, प्लगइन ए किक करता है और लंबाई 10. हो जाती है। अंत में, प्लगइन बी का वजन होता है, जिससे लंबाई 104 हो जाती है.

do_action () सटीक एक ही तंत्र का उपयोग करता है, पहले पैरामीटर के रूप में परिभाषित हुक से बंधे सभी कार्यों को निष्पादित करता है.

ध्यान दें कि यह पैटर्न पूरी तरह से संलग्न है, यह किसी विशेष परिभाषा पर निर्भर नहीं करता है। आप do_action (‘lol_hook’) का उपयोग कहीं भी कर सकते हैं, जैसा कि आप चाहते हैं, सबसे खराब स्थिति, कोई कार्य lol_hook से बंधा नहीं है। दूसरे शब्दों में, हमारे पास पहले से ही अपने हुक बनाने के लिए बुनियादी ढांचा है!

हमारे अपने हुक बनाना

जैसा कि मैंने ऊपर उल्लेख किया है, हम सभी को do_action () और / या add_filter का उपयोग करना सुनिश्चित करना है और सुनिश्चित करना है यह दस्तावेज. इस तरह कोडर्स और उपयोगकर्ता वास्तव में इसे जान पाएंगे.

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

$ args = सरणी (
‘post_type’ => ‘लगाव’,
‘पोस्ट_स्टैटस’ => ‘कोई भी’,
‘क्रम’ => ‘तारीख’,
‘आदेश’ => ‘DESC’,
‘पोस्ट_पर_पेज’ => 10,
‘खेत’ => ‘आईडी’
);
$ छवियां = नया WP_Query ($ args);
$ गैलरी = ‘[‘ .’gallery आईडी ="’। प्रत्यारोपण (‘,’, $ छवियां)। ‘"] ”। ‘;
इको do_shortcode ($ गैलरी);

इस उदाहरण में, हम यह सुनिश्चित करते हुए एक क्वेरी बनाते हैं कि हम केवल छवियों को पुनः प्राप्त करते हैं, तिथि के अनुसार और 10 परिणामों तक सीमित। फ़ील्ड पैरामीटर का उपयोग करके मैंने यह सुनिश्चित किया कि आईडी की एक सरणी वापस आ गई है। फिर मैंने इस जानकारी से एक नियमित वर्डप्रेस गैलरी शोर्ट बनाया.

यहां हुक लगाने के लिए दो दृष्टिकोण हैं। आप इसे $ args की परिभाषा से पहले जोड़ सकते हैं, जैसे:

$ पोस्ट_पर_पृष्ठ = लागू_फिल्टर (‘my_gallery / posts_per_page’, 10);

इस स्थिति में, आपको सरणी में $ posts_per_page चर का उपयोग करना होगा। शायद एक बेहतर समाधान यह होगा कि पूरे सरणी को संशोधित किया जाए। यह अन्य प्लगइन्स (या आप, भविष्य में) को दीर्घाओं में श्रेणी, टैग और अन्य प्रतिबंधों को जोड़ने की अनुमति देगा – यहां पूर्ण कोड है:

$ args = सरणी (
‘post_type’ => ‘लगाव’,
‘पोस्ट_स्टैटस’ => ‘कोई भी’,
‘क्रम’ => ‘तारीख’,
‘आदेश’ => ‘DESC’,
‘पोस्ट_पर_पेज’ => 10,
‘खेत’ => ‘आईडी’
);

$ args = apply_filters (‘my_gallery / query_args’, $ args);

$ छवियां = नया WP_Query ($ args);
$ गैलरी = ‘[‘ .’gallery आईडी ="’। प्रत्यारोपण (‘,’, $ छवियां)। ‘"] ”। ‘;
इको do_shortcode ($ गैलरी);

यही सब है इसके लिए। अन्य प्लगइन्स अब बनाई गई दीर्घाओं की कार्यक्षमता को संशोधित करने के लिए my_gallery / query_args हुक का उपयोग कर सकते हैं.

नामकरण पर एक नोट: फॉरवर्ड स्लैश बिल्कुल भी आवश्यक नहीं है। आप could my_plugin_query_args ’या आपके इच्छित किसी अन्य प्रारूप का उपयोग कर सकते हैं। मैं फॉरवर्ड स्लैश को पसंद करता हूं क्योंकि यह स्पष्ट रूप से इसे बनाने वाले प्लगइन और इसे प्रदान करने वाली कार्यक्षमता को बताता है.

निष्कर्ष

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

आदेश में एक हुक जोड़ने के बजाय, पोस्ट की स्थिति, पोस्ट_टाइप और पोस्ट_पर_पेज को अलग-अलग करने के बाद, मैंने एक फ़िल्टर जोड़ा, जो एक बार में पूरे सरणी को संशोधित कर सकता है। डेटा के अन्य बिट्स को हुक जोड़ने के लिए समझ में नहीं आ सकता है, यह अंततः आप पर निर्भर है.

अधिक मॉड्यूलर और विस्तार योग्य एप्लिकेशन बनाने के लिए शुभकामनाएं, हमें बताएं कि क्या आपने पहले अपने हुक का इस्तेमाल किया था, कहीं ठंडा था!

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Это интересно
    Adblock
    detector