टेम्पलेट पदानुक्रम: index.php, front-page.php, home.php के साथ भ्रमित


36

मैं वास्तव में उलझन में हूं index.php, home.phpऔर front-page.php। कई मामलों में भले ही मेरे पास एक था index.php, लेकिन मैं इसे ओवरराइट कर देता हूं front-page.php। लेकिन हाल ही में, मुझे इस बारे में पता चला home.php

  • बीच क्या अंतर है home.phpऔर index.php?
  • एक home.phpसे अधिक का उपयोग करने के लिए आदर्श स्थिति क्या है index.php?
  • आदर्श स्थिति का उपयोग करने के लिए क्या है front-page.php?
  • जब मैं front-page.phpतब एक विशिष्ट कार्य का उपयोग कर रहा होता हूं तो index.phpमेरे लिए क्या होता है?

मैंने कोडेक्स में टेम्पलेट पदानुक्रम पढ़ा है । कृपया मेरे प्रश्न को पेज टेम्प्लेट के साथ न मिलाएं, मैं उन्हें समझता हूं, al HamduLILLAH।


1
गॉट इस के साथ @rarst: rarst.net/wordpress/front-page-logic । क्या मैं आपकी मदद कर सकता हूँ।
मायीनुल इस्लाम

जवाबों:


34

फ्रंट पेज लॉजिक वर्डप्रेस में सबसे अधिक भ्रमित करने वाली विशेषताओं में से एक है और इसे समझाने और सारांशित करने के लिए असाधारण रूप से कठिन है। जैसा कि टिप्पणी में उल्लेख किया गया है कि जब मैंने अपने सामने पृष्ठ तर्क चिट शीट को एक साथ रखने के लिए अपवित्र राशि का समय जलाया था।

लेकिन चूंकि यह एक लोकप्रिय धागा है इसलिए मुझे उन विशिष्ट प्रश्नों के उत्तर देने की कोशिश करें जो आपके पास थे।

बीच क्या अंतर है home.phpऔर index.php?

home.phpपोस्ट इंडेक्स (देशी पोस्ट पोस्ट प्रकार का संग्रह, जो WP में एक विशेष मामला है) के लिए टेम्पलेट है। WP इसे पोस्ट के इंडेक्स के लिए देखने का प्रयास करेगा, चाहे वे साइट के रूट पर या समर्पित पोस्ट पेज पर प्रदर्शित हों।

index.phpसभी टेम्पलेट है यह टेम्पलेट पदानुक्रम की सभी शाखाओं में अंतिम विकल्प है और संग्रह और विलक्षण दोनों विचारों के लिए और कुछ नहीं होने पर चुना जाएगा।

केवल पोस्ट इंडेक्स का उपयोग कर सकते हैं home.php, लेकिन अन्य सभी संदर्भों का उपयोग कर सकते हैं और उपयोग करेंगे index.php

एक home.phpसे अधिक का उपयोग करने के लिए आदर्श स्थिति क्या हैindex.php

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

आप index.phpअपने विषय में सबसे सामान्य टेम्पलेट प्रदान करने के लिए उपयोग करते हैं, कुछ भी प्रदर्शित करने के लिए उपयुक्त है।

कुछ थीम खाली होना चुनते हैं index.phpऔर यह सुनिश्चित करते हैं कि उनके पास सभी संभावित मामलों के लिए अधिक विशिष्ट टेम्पलेट हैं, इसलिए इसका उपयोग कभी नहीं करना चाहिए।

आदर्श स्थिति का उपयोग करने के लिए क्या है front-page.php?

front-page.php यदि सक्षम है, तो रूट या स्थिर फ्रंट पेज पर पोस्ट इंडेक्स के लिए उपयोग किया जाता है।

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

इसके लिए सबसे अच्छा उपयोग निजी परियोजनाओं में है, क्योंकि पेज टेम्पलेट की तुलना में इसे कॉन्फ़िगर करना आसान है।

जब मैं front-page.phpतब एक विशिष्ट कार्य का उपयोग कर रहा होता हूं तो index.phpमेरे लिए क्या होता है?

index.phpहै अभी भी एक पकड़ने अन्य सभी मामलों के लिए सभी टेम्पलेट।

यदि आप स्थैतिक फ्रंट पेज (जिस front-page.phpपर लागू होंगे) का उपयोग करते हैं तो आपके पोस्ट पेज का उपयोग करने की कोशिश करेंगे home.phpऔर फिर index.php


28

front-page.phpफ़ाइल है साइट पहले पन्ने टेम्पलेट। यह हमेशा आपकी साइट के फ्रंट पेज पर उपयोग किया जाएगा, भले ही get_option( 'show_on_front' )वह सेट हो pageया नहीं posts

home.phpटेम्पलेट फ़ाइल है ब्लॉग पोस्ट सूचकांक टेम्पलेट। इसका उपयोग हमेशा आपके ब्लॉग पोस्ट इंडेक्स को प्रदर्शित करने के लिए किया जाएगा, भले ही ब्लॉग पोस्ट इंडेक्स साइट के फ्रंट पेज पर प्रदर्शित हो या किसी अलग पेज पर।

ऐसा होता है कि दोनों में front-page.phpऔर home.hppमौजूद हैं, और get_option( 'show_on_front' )करने के लिए सेट कर दिया जाता posts(यानी, साइट पहले पन्ने को प्रदर्शित करता है ब्लॉग पोस्ट इंडेक्स), front-page.phpफ़ाइल पूर्वता कार्यभार ग्रहण करेंगे home.phpफ़ाइल।

index.phpफ़ाइल है डिफ़ॉल्ट फ़ॉलबैक टेम्पलेट में सभी संदर्भों के लिए खाका पदानुक्रम । इसका उपयोग केवल तभी किया जाता है यदि वर्तमान संदर्भ के लिए अधिक विशिष्ट टेम्पलेट फ़ाइल मौजूद नहीं है।

साइट फ्रंट पेज के लिए टेम्पलेट पदानुक्रम है:

  • front-page.php
  • यदि 'page' == get_option( 'show_on_front' ): पृष्ठ पदानुक्रम
  • यदि 'posts' == get_option( 'show_on_front' ): ब्लॉग अनुक्रमणिका पदानुक्रम पोस्ट करता है

ब्लॉग पोस्ट इंडेक्स के लिए टेम्पलेट पदानुक्रम है:

  • home.php
  • index.php

पृष्ठों के लिए टेम्पलेट पदानुक्रम है:

  • कस्टम पेज टेम्पलेट
  • page-{slug}.php
  • page-{id}.php
  • page.php
  • index.php

इसलिए, यदि मुझे यह अधिकार मिल रहा है, तो my-template-1फ्रंट पेज को लेटेस्ट पोस्ट पर सेट करने और फ्रंट पेज को my-template-2स्टैटिक पेज (बिना कोडिंग) में सेट किए उपयोग करने पर टेम्पलेट का उपयोग करना संभव नहीं है ?
जैक जोहानसन

18

यह सब खाका पदानुक्रम के गहन पठन से आता है ।

home.php उपयोग किया जाता है यदि:

  • आपकी साइट का मुख पृष्ठ पोस्ट की सूची प्रदर्शित करने के लिए सेट है, या
    • एक स्थिर फ्रंट पेज सेट है , और
    • एक आगंतुक उस पृष्ठ पर जाता है जिसे आपने अपने "पदों की सूची" के रूप में परिभाषित किया है (उदाहरण के लिए http://example.com/blog/)
  • और थीम में एक home.phpफाइल है

यदि अंतिम शर्त पूरी नहीं हुई है - यानी, home.phpविषय में कोई फ़ाइल नहीं है - तो index.phpलोड किया जाएगा।

front-page.php उपयोग किया जाएगा यदि:

  • एक स्थिर फ्रंट पेज सेट है , और
  • एक आगंतुक उस पृष्ठ पर जाता है जिसे आपने अपने "स्थिर होम पेज" (यानी, http://example.com/) और, के रूप में परिभाषित किया है
  • थीम में एक front-page.phpफाइल है

यदि अंतिम शर्त पूरी नहीं हुई है - यानी, front-page.phpविषय में कोई फ़ाइल नहीं है - तो index.phpलोड किया जाएगा।

संक्षेप में

यदि आप अपनी पोस्ट की सूची को अनुकूलित करना चाहते हैं, तो उपयोग करें home.php
यदि आप अपने स्थिर होम पेज को कस्टमाइज़ करना चाहते हैं, तो उपयोग करें front-page.php


2
home.phpस्थान की परवाह किए बिना, ब्लॉग पोस्ट इंडेक्स के लिए उपयोग किया जाएगा। यदि ब्लॉग पोस्ट इंडेक्स प्रदर्शित करने के लिए फ्रंट पेज सेट है, तो home.phpइसका उपयोग किया जाएगा (यदि front-page.phpमौजूद नहीं है)।
चिप बेनेट

10

संक्षेप में:

  • index.php केवल गिरावट का खाका है, यदि कोई उपयुक्त खाका नहीं मिला
  • home.php ब्लॉग के लिए प्रयोग किया जाता है (हालिया पोस्टों की एक सूची)
  • front-page.php लैंडिंग-पेज के लिए उपयोग किया जाता है

सार्वभौमिक index.phpटेम्पलेट

index.phpटेम्पलेट फ़ाइल फ़ॉलबैक टेम्पलेट है। इसका उपयोग अंतिम उपाय के रूप में किया जाता है जब कोई अन्य उपयुक्त टेम्पलेट उपलब्ध नहीं होता है। उदाहरण के लिए, यदि आपके पास न तो है front-page.phpऔर न ही home.phpतब index.phpउपयोग किया जाएगा। यह लापता archive.phpया अन्य के लिए भी सही है single.php

front-page.phpवी। एस। के बारे मेंhome.php

अब अंतर front-page.phpऔर home.phpटेम्पलेट का front-page.phpउपयोग किया जाता है, जैसा कि इसके नाम से पता चलता है, साइट के मुख्य फ्रंट-पेज के रूप में, जबकि ब्लॉग अनुभाग home.phpका घर होना है ।

मेरी साइट के लैंडिंग-पृष्ठ के लिए कौन सा टेम्पलेट उपयोग किया जाएगा?

front-page.phpटेम्पलेट, वर्तमान है, साइट का मुख्य पहले पन्ने (जैसे के लिए उपयोग किया जाएगा http://www.example.com/)। यदि मौजूद नहीं है, तो home.phpइसके बजाय उपयोग किया जाएगा। यदि दोनों front-page.phpऔर home.phpटेम्प्लेट फ़ाइलें अनुपलब्ध हैं, तो index.phpफ़ॉलबैक टेम्पलेट का उपयोग किया जाएगा।

मेरे ब्लॉग पृष्ठ के लिए कौन सा टेम्पलेट उपयोग किया जाएगा?

वर्डप्रेस आपको लैंडिंग पृष्ठ (जैसे ) से अलग पृष्ठ पर एक "ब्लॉग" पृष्ठ (जो हाल के पदों की सूची देगा http://www.example.com/blog/) की अनुमति देता है। इसलिए यदि आपकी साइट पर ऐसा है, तो ब्लॉग पेज हमेशा home.phpटेम्पलेट का उपयोग करेगा । यदि home.phpमौजूद नहीं है तो index.phpफ़ॉलबैक टेम्पलेट का उपयोग किया जाएगा।

लैंडिंग-पेज और ब्लॉग पेज को कैसे कॉन्फ़िगर करें?

अपने फ्रंट पेज पर क्या सामग्री दिखाना है, इसे कॉन्फ़िगर करने के लिए, वर्डप्रेस एडमिन पर जाएं , टूल्स> रीडिंग के तहत , वहां आप " फ्रंट पेज डिस्प्ले " को स्टैटिक पेज या अपने नवीनतम पोस्ट दिखाने के लिए कॉन्फ़िगर कर सकते हैं ।

यदि आप सामने वाले पृष्ठ पर एक स्थैतिक पृष्ठ प्रदर्शित करना चुनते हैं, तो आपके पास यह भी संभावना है कि ब्लॉग पृष्ठ के लिए प्लेसहोल्डर के रूप में किस पृष्ठ का उपयोग किया जाए (जो home.phpटेम्पलेट का उपयोग करेगा ):

यहाँ छवि विवरण दर्ज करें


3

Wordpress टेम्पलेट पदानुक्रम से लिया गया

होम पेज डिस्प्ले

डिफ़ॉल्ट रूप से, वर्डप्रेस आपकी नवीनतम ब्लॉग पोस्ट प्रदर्शित करने के लिए आपकी साइट का होम पेज सेट करता है। इस पेज को ब्लॉग पोस्ट इंडेक्स कहा जाता है। आप एक अलग स्थिर पृष्ठ पर प्रदर्शित करने के लिए अपने ब्लॉग पोस्ट भी सेट कर सकते हैं। टेम्पलेट फ़ाइल home.php का उपयोग ब्लॉग पोस्ट इंडेक्स को रेंडर करने के लिए किया जाता है, चाहे इसका उपयोग फ्रंट पेज के रूप में किया जा रहा हो या अलग-अलग स्टेटिक पेज पर। यदि home.php मौजूद नहीं है, तो WordPress index.php का उपयोग करेगा।

  1. home.php
  2. index.php

नोट: यदि सामने-page.php मौजूद है, तो यह home.php टेम्पलेट को ओवरराइड करेगा।

फ्रंट पेज डिस्प्ले

फ्रंट-पेज. एफपी टेम्पलेट फ़ाइल का उपयोग आपकी साइट के फ्रंट पेज को रेंडर करने के लिए किया जाता है, चाहे फ्रंट पेज ब्लॉग पोस्ट इंडेक्स (ऊपर उल्लेख किया गया) या एक स्थिर पेज प्रदर्शित करता हो। फ्रंट पेज टेम्पलेट ब्लॉग पोस्ट इंडेक्स (home.php) टेम्पलेट पर पूर्वता लेता है। यदि फ्रंट-पेज. एफपी फाइल मौजूद नहीं है, तो वर्डप्रेस या तो सेटिंग में रीडिंग के आधार पर होम.फ्प या पेज. एफपी फाइल का उपयोग करेगा → रीडिंग। यदि उनमें से कोई भी फ़ाइल मौजूद नहीं है, तो यह index.php फ़ाइल का उपयोग करेगा।

1. front-page.php - दोनों "आपके नवीनतम पोस्ट" या "एक स्थिर पृष्ठ" के लिए उपयोग किया जाता है, जैसा कि फ्रंट पेज में सेट किया गया है सेटिंग्स → पढ़ना का अनुभाग।

2. home.php - यदि वर्डप्रेस फ्रंट-पेज नहीं पा रहा है। एफपी और "आपके नवीनतम पोस्ट" फ्रंट पेज डिस्प्ले सेक्शन में सेट है, तो यह होम.फैप के लिए दिखेगा। इसके अलावा, वर्डप्रेस इस फाइल को तब देखेगा जब पोस्ट पेज फ्रंट पेज डिस्प्ले सेक्शन में सेट हो।

3. page.php - जब "फ्रंट पेज" फ्रंट पेज डिस्प्ले सेक्शन में सेट होता है।

4. index.php - जब "आपके नवीनतम पोस्ट" फ्रंट पेज डिस्प्ले अनुभाग में सेट होते हैं, लेकिन home.php मौजूद नहीं होता है या जब फ्रंट पेज सेट होता है, लेकिन page.php मौजूद नहीं होता है।

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

खाका पदानुक्रम चार्ट: वर्डप्रेस टेम्पलेट पदानुक्रम


2

मैंने यह परीक्षण करने का निर्णय लिया कि विभिन्न फ्रंट पेज डिस्प्ले विकल्प सेट होने पर निम्नलिखित में से प्रत्येक पृष्ठ के लिए कौन सा टेम्पलेट उपयोग किया जाता है।

  • example.net
  • example.net/home/
  • example.net/blog/

परिणाम काफी लंबे हैं, लेकिन एक संदर्भ या धोखा-शीट के रूप में इस्तेमाल किया जा सकता है।

फ्रंट पेज प्रदर्शित करता है

स्रोत: वर्डप्रेस में फ्रंट-पेज. एफपी और होम.फ्लो टेम्प्लेट कैसे भिन्न होते हैं?

संपादक पर ध्यान दें: मैंने यहां तालिकाओं को कॉपी और पेस्ट करने की कोशिश की, लेकिन HTML के बजाय मार्कडाउन प्रारूप की आवश्यकता है। यदि आप कर सकते हैं तो कृपया मार्कडाउन में बदलें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.