कुछ बहुत अच्छे परिचयात्मक उत्तर यहां दिए गए हैं।
मूल रूप से, get_template_part()
थीम डेवलपर्स को टेम्प्लेट फ़ाइलों की विशिष्टता के क्रम को स्थापित करने की अनुमति देता है। इसे सीएसएस चयनकर्ताओं पर लागू होने के समान ही विशिष्टता के बारे में सोचें। जब कुछ डिजाइन करते हैं, तो आप नंगे न्यूनतम विशिष्टता के साथ शुरू करना चाहते हैं, ताकि इसे आसानी से डिजाइन के कुछ हिस्सों में ओवरराइड किया जा सके, जिन्हें व्यक्तिगत ध्यान देने की आवश्यकता है।
इसलिए, उदाहरण के लिए, आप एक ब्लॉग को स्टाइल कर रहे हैं और आप एक लूप.फैप फाइल बनाते हैं जो पोस्टों को चिह्नित करने के लिए अच्छी तरह से काम करता है। लेकिन आप आगे की योजना बनाते हैं, और आप इसे अपने टेम्प्लेट फ़ाइलों में बाद में अतिरिक्त संदर्भ विनिर्देशक के साथ कहते हैं - कहते हैं, इंडेक्स पेज पर, आप कॉल करते हैं get_template_part( 'loop', 'index' );
, एकल टेम्पलेट पर, आप कॉल करते हैं get_template_part( 'loop', 'single' );
, संग्रह के पन्नों पर, आप कॉल करते हैं get_template_part( 'loop', 'archive' );
, और इसी तरह। जब आप अपने संग्रह पृष्ठों पर लूप को होम पेज से अलग करने का निर्णय लेते हैं, तो यह सड़क को बहुत आसान बना देता है: बस एक लूप- आर्काइव बनाएँ । टेम्पलेट और इसका उपयोग सामान्य लूप के बजाय किया जाएगा ।
लेकिन पीछे get_template_part()
का जादू फ़ंक्शन में है locate_template()
, जो पहले थीम डायरेक्टरी की जांच करता है, फिर नाम वाली फ़ाइल के लिए मूल निर्देशिका (यदि कोई मौजूद है)। यह प्लगइन विकास के लिए बहुत उपयोगी है। मेरे एक प्लग इन में, मैं एक कस्टम पोस्ट प्रकार को परिभाषित करता हूं और अपनी प्लगइन निर्देशिका में उस कस्टम पोस्ट प्रकार के लिए एक लूप टेम्पलेट फ़ाइल बनाता हूं। लेकिन ... यदि वे चुनते हैं तो मैं अपने प्लगइन का उपयोग करके थीम को अनुमति देना चाहता हूं। यह वह जगह है जहाँ locate_template()
वास्तव में अद्भुत काम करता है।
locate_template($template_names, $load = false, $require_once = true )
शैलियों टेम्पलेट निर्देशिका में $ template_names सरणी में प्रत्येक नाम की तलाश करेंगे, फिर टेम्पलेट निर्देशिका में। $ लोड तर्क के रूप में 'सही' पास करने का मतलब है कि इसे पहली फ़ाइल की आवश्यकता होगी , और यदि कोई टेम्पलेट फ़ाइल स्थित नहीं थी, तो एक खाली स्ट्रिंग लौटाएगा। तो मैं अपने प्लगइन में ऐसा कुछ कर सकता हूं:
if ( '' === locate_template( 'loop-mycustomposttype.php', true, false ) )
include( 'loop-mycustomposttype.php' );
... जो थीम डेवलपर्स के लिए अपने थीम में सिर्फ लूप-माइकोस्टेपोस्टाइप . php नामक फाइल को शामिल करके मेरे प्लगइन को अनुकूलित करना बहुत आसान बना सकता है ।