वर्डप्रेस: ​​आपके चाइल्ड थीम में पेरेंट थीम से शोर्टकोड ओवरराइट करें

वर्डप्रेस एपीआई

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

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

इस वजह से, हमें किसी ईवेंट को पंजीकृत करने के लिए एंकर टेक्स्ट में एक ऑनक्लिक ईवेंट जोड़ने की आवश्यकता थी। यहाँ यह कैसा दिख सकता है:

होम बटन

बेशक, समस्या यह है कि हमारे में एक शोर्ट कोड मौजूद है मूल विषय और हम मूल विषयवस्तु को संपादित नहीं करना चाहते हैं। और, चूंकि शोर्टकोड पूरी साइट पर सामग्री में तैनात है, इसलिए हम एक नया शोर्टकोड भी नहीं बनाना चाहते हैं।

समाधान बहुत चालाक है। वर्डप्रेस एपीआई (API) आपको शोर्ट निकालने की अनुमति देता है! तो, हमारे बाल विषय में, हम शोर्ट को हटा सकते हैं, फिर इसे हमारे नए शोर्ट फ़ंक्शन से बदल सकते हैं:

add_action ('after_setup_theme', 'calling_child_theme_setup');
function calling_child_theme_setup () {remove_shortcode ('old_button_function_in_parent_theme'); add_shortcode ('बटन', 'new_button_function_in_child_theme'); }
फंक्शन new_button_function_in_child_theme ($ atts, $ content = null) {... आपका नया शोर्ट यहां है ...}

मेरे नए बटन फ़ंक्शन में (मेरे चाइल्ड थीम के फंक्शन्स.php में), मैं एक डायनामिक ईवेंट ऑनक्लिक ईवेंट जोड़ने के लिए शोर्ट फ़ंक्शन को फिर से लिखता हूं। आउटपुट खूबसूरती से काम करता है और अब Google Analytics में ट्रैकिंग कर रहा है!

तुम्हें क्या लगता है?

यह साइट स्पैम को कम करने के लिए अकिस्मेट का उपयोग करती है। जानें कि आपका डेटा कैसे संसाधित किया जाता है.