अगर (is_home () &&! is_front_page ())


24

मैं index.php फ़ाइलों में निम्न कोड बहुत कुछ देखता हूं। मैं समझता हूं कि is_front_page()साइट फ्रंट पेज (चाहे ब्लॉग पोस्ट इंडेक्स या स्टैटिक पेज प्रदर्शित कर रहा हो) is_home()को देखने के दौरान यह सच हो जाता है , जबकि ब्लॉग पोस्ट इंडेक्स (चाहे फ्रंट पेज पर या स्टैटिक पेज पर प्रदर्शित हो) को देखते हुए सही रिटर्न मिलता है। मैं अभी भी निम्नलिखित कोड के उपयोग के बारे में कुछ स्टम्प्ड हूं -

<?php if ( have_posts() ) : ?>

    <?php if ( is_home() && ! is_front_page() ) : ?>
        <header>
            <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
        </header>
    <?php endif; ?>

कोड का यह टुकड़ा इतना लोकप्रिय क्यों है, इसकी कोई भी व्याख्या की सराहना की जाती है।

जवाबों:


15

यह पृष्ठ का शीर्षक प्रदर्शित करेगा जब एक स्थिर पृष्ठ पोस्ट दिखाने के लिए सेट है।

उदाहरण के लिए

मैं अपने मुखपृष्ठ पर पोस्ट दिखाता हूं ... यह कुछ नहीं करेगा।

अगर मैं कहता हूं, तो समाचार शीर्षक वाले पृष्ठ पर पोस्ट दिखाएं ... यह H1 में समाचार दिखाएंगे ।

इसका उपयोग इसलिए किया जाता है कि पृष्ठ का शीर्षक दिखाया जाता है, जब भी किसी पृष्ठ पर पोस्ट दिखाए जाते हैं, लेकिन जब ब्लॉग पोस्ट फ्रंट पेज (होम पेज) पर दिखाए जाते हैं तो कुछ भी नहीं।

हम इसे करते हैं क्योंकि अगर यह होम पेज पर है ... यह पहली पोस्ट का शीर्षक दिखाएगा, जिससे यह दो बार दिखाई देगा (एक बार एच 1 में शीर्ष पर और फिर से जब पोस्ट के माध्यम से लूप किए जाते हैं)।


धन्यवाद श्रमे। मैंने अपने ब्लॉग इंडेक्स पेज का शीर्षक <h1> में पाया, जब यह पता लगाने की कोशिश की गई लेकिन यह वास्तव में कहीं भी दिखाई नहीं देता है। मुझे लगता है कि कुछ थीम केवल स्क्रीन-रीडर्स का उपयोग करने वाले लोगों की मदद करने के लिए इसका उपयोग करते हैं, और फिर वास्तविक पाठ को छिपाते हैं, जो कि newbies के लिए थोड़ा भ्रामक है यदि इसकी टिप्पणी / दस्तावेज नहीं है।
olliew

खैर ... यह जानने में मदद करता है कि किन संदर्भ पोस्टों का उपयोग किया जाता है (जैसे कि समाचार के लिए उपरोक्त उदाहरण में) लेकिन यह मुख्य रूप से एसईओ के लिए है , एच 1 खोज बॉट को पृष्ठ की सामग्री को बेहतर ढंग से समझने में मदद करने में एक बड़ी भूमिका निभाता है।
तीर्थयात्रा

27

यह सही कैसे करना है:

if ( is_front_page() && is_home() ) {
// Default homepage

} elseif ( is_front_page()){
// Static homepage

} elseif ( is_home()){

// Blog page

} else {

// Everything else

}

यह आपके मुखपृष्ठ और आपके ब्लॉग पृष्ठ के साथ सामग्री को प्रदर्शित करने या बदलने का एकमात्र (सही) तरीका है।


4

मैं "लोकप्रिय" के बारे में निश्चित नहीं हूं, यह मुझे ऐसा नहीं लगता (लेकिन फिर मैं उस कई विषयों को नहीं देखता हूं)।

आप ठीक-ठीक समझ लेते हैं कि प्रत्येक सशर्त क्या करता है, इसलिए यह आपको भ्रमित नहीं करना चाहिए। यह जाँचने के लिए शर्तों को जोड़ती है कि ब्लॉग इंडेक्स प्रदर्शित किया जा रहा है और यह फ्रंट पेज पर नहीं है

आह, single_post_title()मेरे अनुमान का कारण यह है कि यह वैश्विक के $wp_query->queried objectबजाय शीर्षक (वर्तमान संदर्भ के रूप में मुख्य क्वेरी द्वारा सेट) प्रदर्शित करता है , $post(सेट अप लूप द्वारा सेट)।

कुछ परिस्थितियों में ये समान होंगे, लेकिन ऐसी स्थिति में नहीं जब तक स्थिति की जाँच नहीं हो जाती। लूप में पोस्ट होंगे , लेकिन क्वेरिड ऑब्जेक्ट होगा पेज (जब तक मैं चीजों को मिला नहीं रहा हूं :)।


मैं हाल ही में टेम्प्लेट के भार को देख रहा हूं और यह बहुत सामान्य है। आप सही कह रहे हैं कि मैं समझता हूं कि लूप क्या कर रहा है, मुझे अभी समझ नहीं आया कि लोग इसे इस विशेष तरीके से क्यों चुनना चाहेंगे। क्यों the_title () के बजाय single_post_title का उपयोग करें?
iewलिवेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.