2011-02-07 11 views
7

क्या वर्डप्रेस मुखपृष्ठवर्डप्रेस में होम पेज का पता लगाने के विभिन्न तरीके क्या हैं?

पता लगाने के लिए अलग अलग तरीकों से is_front_page() और is_home()

छोड़कर

धन्यवाद

+2

क्या 'is_home()' के साथ गलत क्या है? – alex

+0

यह मेरे ब्लॉग में काम नहीं कर रहा है :( –

+2

मुझे वर्डप्रेस अच्छी तरह से नहीं पता है, लेकिन क्या आप इसे $ $ हैम = ($ _SERVER ['REQUEST_URI'] == '/') '(या जो भी हो होमपेज है)? – alex

उत्तर

20

is_front_page() वह है जो आप चाहते हैं।

मुझे लगता है कि is_home() काम नहीं कर रहा है, कि आपका होम पेज स्थिर है, wp-admin में सेटिंग्स के अनुसार।

is_home() आपके मुख्य ब्लॉग पेज पर सच है जबकि is_front_page() सत्य देता है जिस पर कभी भी पृष्ठ को आपके सामने वाले पृष्ठ, फ़ीड या नहीं के रूप में परिभाषित किया जाता है।

कोडेक्स से:

यह सशर्त टैग जांच करता है कि मुख्य पृष्ठ पर एक पोस्ट या एक पृष्ठ है। यह एक बूलियन फ़ंक्शन है, जिसका अर्थ है कि यह या तो सत्य या गलत है। यह मुख्य ब्लॉग पेज प्रदर्शित होने पर TRUE लौटाता है और सेटिंग्स-> पढ़ना-> फ्रंट पेज डिस्प्ले "आपकी नवीनतम पोस्ट" पर सेट होता है, या जब "एक स्थिर पृष्ठ" पर सेट होता है और "फ्रंट पेज" मान होता है वर्तमान पृष्ठ प्रदर्शित किया जा रहा है।

16

मैं सिर्फ निम्नलिखित करते हैं:

if ($_SERVER["REQUEST_URI"] == '/') { } 

यह काम करता है और चीजें overcomplicate नहीं करता है, खासकर is_front_page() और is_home() हमेशा काम न करें जैसा कि आप उन्हें उम्मीद करेंगे।

+0

ऐसा लगता है कि यदि आपके पास फ्रंट पेज के रूप में कोई श्रेणी है तो यह विश्वसनीय रूप से काम करता है। –

-1

is_home() जाने का रास्ता है।

क्या आपने इस विधि को आजमाया है और यह काम नहीं करता है? यदि हां, तो आमतौर पर mod_rewrite सेटिंग्स या वर्डप्रेस सेटिंग्स के साथ कुछ करना पड़ता है।

+0

ऐसा नहीं है। –

0

कई स्थितियों में एक वर्डप्रेस साइट में _home और is_frontpage दोनों वास्तविक मुखपृष्ठ पर और मुख्य ब्लॉग पेज पर भी सत्य साबित हो सकते हैं। लगभग 4 वर्षों तक वर्डप्रेस में साइट बनाने के बाद यह अभी भी मुझे परेशान करता है।

उदाहरण के लिए यदि आपके पास ऐसी साइट है जहां आपके पास अपने होमपेज पर एक स्लाइडर या कुछ अन्य होमपेज-केंद्रित तत्वों के साथ आपकी नवीनतम पोस्ट हैं, और एक और ब्लॉग पेज है, तो is_frontpage और is_home दोनों दोनों पृष्ठों पर सच साबित होंगे । तो वर्डप्रेस के पास वास्तविक मुखपृष्ठ के लिए स्पष्ट सशर्त कार्य नहीं है, कम से कम अधिकांश लोग वेबसाइट के मुखपृष्ठ के बारे में सोचते हैं।

तो मैं लियाम के साथ सहमत हैं कि अगर आप एक भ्रामक स्थिति में हो, की तरह कुछ अगर ($ _SERVER [ "REQUEST_URI"] == '/') {}

और अधिक विश्वसनीय है।

2

बीस दस के साथ मैं का उपयोग करें:

<?php 
if ($_SERVER["REQUEST_URI"] == '/') { ?> 
    <h1 class="site-title"><?php bloginfo('name'); ?></h1> 
    <h2 class="site-description"><?php bloginfo('description'); ?></h2> 
<?php 
} else { ?> 
    <p class="site-title"><?php bloginfo('name'); ?></p> 
    <p class="site-description"><?php bloginfo('description'); ?></p> 
<?php } ?> 

वर्क्स एक आकर्षण ... $ _SERVER की तरह एक मैं हमेशा का उपयोग है और यह हमेशा काम करता है।

0

लगभग दो साल पहले इस सवाल का पाया जाता है, बल्कि एक विशिष्ट सेटअप के साथ काम:

मैं किसी अन्य पृष्ठ पर मुखपृष्ठ पर और नहीं एक मॉड्यूल (faceted खोज इंजन) लोड करने के लिए चाहता था। इसके साथ समस्या को ठीक से काम करने और तेज़ होने के लिए init पर बूटस्ट्रैप किया जाना था।

आम तौर पर, मुझे Liam Galvin के answer के लिए बसना चाहिए था।
लेकिन मैं ब्रूट फोर्स समाधान का प्रशंसक नहीं हूं। इसलिए मैंने is_front_page() पर देखा कि यह falseinit के दौरान क्यों लौटाता है। और यह काफी सरल है: यह $wp_query पर निर्भर करता है, जो उस बिंदु पर सेट नहीं है।

तो मैं समारोह नीचे लिखा था, (और यह कभी के बाद से इस्तेमाल किया), दोनों दुनिया का सबसे अच्छा संयोजन:
जानवर बल से पहले $wp_query सेट किया गया है (मैंने कभी इसकी जरूरत चाहिए) और उचित WP रास्ता बाद में:

function on_front_page() { 
    global $wp_query; 

    if (! isset($wp_query)) { 
    return $_SERVER["REQUEST_URI"] == '/'; 
    } else { 
    return $wp_query->is_front_page(); 
    } 
} 

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

तथ्य यह है कि मैं इसे प्रत्येक WP प्रोजेक्ट में कॉपी/पेस्ट करता हूं और यह मुझे एक बार विफल नहीं हुआ है, इसलिए मैंने सोचा कि मैं साझा करूंगा।

0
पाश बाहर से

:

if(get_option("page_on_front") == $post->ID){ 
    //do front page stuff here 
} 
संबंधित मुद्दे