वर्डप्रेस में, यूआरएल मार्गों पर मैप नहीं करते हैं। वे डेटाबेस प्रश्नों के लिए मैप करते हैं।
"डिफ़ॉल्ट" पर्मलिंक मोड में वर्डप्रेस का उपयोग करते समय, आपके पास मुख्य URL क्वेरी में चर का एक सेट होता है, जैसे कि = = 1 या? पृष्ठ = 234 और इसके बाद। वहाँ भी है? एस = खोज और कई अन्य।
यदि आप "सुंदर" पर्मलिंक्स का उपयोग करते हैं, तो "रीराइट राइट्स" नामक नियमों का एक बड़ा सेट बनाया जाता है जो URL पैरामीटर के इसी सेट पर सीधे विभिन्न URL पैटर्न को मैप करता है। तो एक URL जैसे / 2014/04/12 / उदाहरण के लिए मैप करना होगा? वर्ष = 2014 और माह = 04 और दिन = 12 और पोस्टनाम = उदाहरण या समान। तो निम्नलिखित उन पर भी लागू होता है, इस मैपिंग के बाद।
ये चर मूल रूप से WP_Query वर्ग के मुख्य उदाहरण को नियंत्रित कर रहे हैं। WP_Query वर्ग डेटाबेस से "पोस्ट" प्राप्त करने के लिए डेटाबेस क्वेरी बनाने वाली सभी जानकारी रखता है। इसमें दिए गए विभिन्न पैरामीटर यह नियंत्रित करते हैं कि यह किस प्रकार की क्वेरी बनाता है और इसे क्या डेटा मिलता है।
देखें, वर्डप्रेस द्वारा प्रदर्शित की जाने वाली हर चीज अनिवार्य रूप से एक "पोस्ट" है। एक ब्लॉग रिवर्स टाइम-आधारित क्रम में पदों की एक श्रृंखला है। एक "पृष्ठ" परिभाषित नाम के साथ एक स्थिर पोस्ट है। एक "कस्टम पोस्ट प्रकार" बिल्कुल वैसा ही होता है, जैसा आप परिभाषित करते हैं, एक कस्टम प्रकार के साथ "पोस्ट"। वर्डप्रेस में कुछ भी प्रदर्शित करने के सभी मुख्य प्रश्नों को wp_posts तालिका से कुछ सबसेट पोस्ट मिल रहे हैं।
WP_Query वह है जो ऐसा करता है। और URL से पैरामीटर सीधे उस मुख्य क्वेरी में भेजे जाते हैं और वहां उपयोग किए जाते हैं।
यह विषय निर्धारित करता है कि क्वेरी के साथ वापस आने के आधार पर कौन सा टेम्पलेट का उपयोग करना है। यदि आपने / श्रेणी / उदाहरण का अनुरोध किया है, तो वह बन जाता है? वर्ग_नाम = उदाहरण जिसका अर्थ है कि मुख्य $ wp_query-> query_vars सरणी को वह जानकारी मिलेगी, और WP_Query "उदाहरण" श्रेणी के लिए अंतिम एक्स पोस्ट को बाहर निकाल देगा, और यह अपने is_category ध्वज को सत्य पर सेट करेगा।
टेम्प्लेट-लोडर इसके बाद चलेगा, देखें कि is_category () सही है, और श्रेणी टेम्प्लेट को चुनने का निर्णय करता है, इसलिए यह श्रेणी-उदाहरण के लिए खोजेगा। पदानुक्रम।
तो, सवाल यह है कि अगर आप यह बदलना चाहते हैं कि URL कैसे काम करते हैं तो यह आसान है: क्या आप URL बदलना चाहते हैं, या वे किससे मैप किए जाते हैं? क्योंकि URL फ़ंक्शन के लिए मैप नहीं किए जाते हैं, वे क्वेरी को नियंत्रित करने वाले मापदंडों के लिए मैप किए जाते हैं। यदि आप चाहते हैं कि URL उस मुख्य क्वेरी को समायोजित करे, तो यह एक अलग प्रक्रिया है, यदि आप एक विशेष URL कुछ अन्य विशेष कोड चलाना चाहते हैं।
और टिप्पणियों में आपके विशिष्ट प्रश्न का उत्तर देने के लिए: "क्या ऐसे मामले नहीं हैं जहां आप वास्तव में पोस्ट प्रदर्शित नहीं करना चाहते हैं?" नहीं वहाँ नहीं है। सब कुछ एक पोस्ट है। सभी सामग्री पोस्ट में संग्रहीत है। यदि आप सामग्री को कहीं और संग्रहीत करना चाहते हैं और अलग-अलग होना चाहते हैं, तो आप ऐसा कर सकते हैं, लेकिन यह अधिक कठिन है क्योंकि, ईमानदारी से, यह आमतौर पर आवश्यक नहीं है। यदि आपके पास विशेष सामग्री है, तो एक कस्टम पोस्ट प्रकार बनाएं, अपनी सामग्री को उस प्रकार के पोस्ट के रूप में संग्रहीत करें, उसके लिए एक URL पैटर्न मैप करें। आसान।