जाँच करें कि क्या वर्तमान पृष्ठ ब्लॉग पेज है


33

मैं वर्डप्रेस पर नया हूँ। मैं यह जांचने का तरीका ढूंढ रहा हूं कि क्या हेडर फ़ाइल के कोड में वर्तमान पृष्ठ ब्लॉग पेज है।

मैंने जाँच की है लेकिन मुझे कोई रास्ता नहीं मिल रहा है। मेरी मदद करो, Pls।

जवाबों:


42

यदि ' ब्लॉग पेज ' से आपका मतलब रीडिंग सेटिंग में पोस्ट पेज के रूप में स्थैतिक पेज सेट है , तो आप ऐसा करके इसे देख सकते हैं:

if ( is_front_page() && is_home() ) {
  // Default homepage
} elseif ( is_front_page() ) {
  // static homepage
} elseif ( is_home() ) {
  // blog page
} else {
  //everyting else
}

जब आप उपयोग करते हैं is_home()और is_front_page(), आपको कीड़े से बचने और प्रत्येक उपयोगकर्ता कॉन्फ़िगरेशन का परीक्षण करने के लिए उन्हें सही क्रम में उपयोग करना होगा

(स्रोत: सशर्त टैग - ब्लॉग पेज )

या केवल:

if ( !is_front_page() && is_home() ) {
  // blog page
}

या अधिक बस (मुझे लगता है):

if ( is_home() ) {
  // blog page
}

उपयोग करने के लिए एक मामला if ( !is_front_page() && is_home() ), कम से कम मेरी राय में, यदि आप एक थीम वितरित कर रहे हैं जिसमें डिफ़ॉल्ट होमपेज और ब्लॉग पेज के लिए अलग लेआउट शैली है ।
गिरधारी

मुझे पता चल रहा है कि ब्लॉग संग्रह या पृष्ठ चयनित है या नहीं, यह सच है। सत्यापन की आवश्यकता है। codex.wordpress.org/Function_Reference/is_front_page
atwellpub

19

आप अपने थीम फ़ंक्शन में निम्न का उपयोग कर सकते हैं। एफपी फाइल:

function is_blog () {
    return ( is_archive() || is_author() || is_category() || is_home() || is_single() || is_tag()) && 'post' == get_post_type();
}

और फिर इसे उस फ़ाइल में रखें जिसे आप जाँच रहे हैं:

<?php if (is_blog()) { echo 'You are on a blog page'; } ?>

आप अपने कार्यों के लिए हुक का उपयोग कर सकते हैं। प्रत्येक पृष्ठ पर प्रदर्शित होने के लिए, उपरोक्त हुक करने के लिए फ़ाइल का उपयोग करें।


1
यह एक बढ़िया जवाब अगर आप तय करें कि आप पर हैं चाहते है एक ब्लॉग पेज, लेकिन जरूरी नहीं ब्लॉग (ब्लॉग मुख पृष्ठ के रूप में) पेज। उसके लिए @ गिरलड़ी का उत्तर देखें।
टिम मालोन

मैंने गलत माना है कि is_blog () मौजूद है क्योंकि is_page () मौजूद है। आधिकारिक वर्डप्रेस सशर्त टैग इंडेक्स से परामर्श करने के लिए मेरे साथ ऐसा नहीं हुआ । मैं विजेट समाधान प्लगइन का उपयोग करके इस समाधान को प्रभावी ढंग से लागू करने में सक्षम था।
क्लारस डिग्नस

11

अगर 'ब्लॉग पेज' से आपका मतलब स्टैटिक पेज सेट है जो रीडिंग में पोस्ट पेज के रूप में है:

global $wp_query;

if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) {
    //static blog page
}

पुनश्च। यह समाधान template_redirect एक्शन पर भी काम करता है


हाय रेपिंसा, WPSE में आपका स्वागत है :) अपना उत्तर जोड़ने के लिए धन्यवाद। इसे थोड़ा नीचे वोट दिया गया है, शायद इसलिए कि इसमें कोड में एक सिंटैक्स त्रुटि है (यह अर्धविराम को याद कर रहा है global $wp_query) लेकिन यह भी क्योंकि यह पूरी तरह से सवाल का जवाब नहीं देता है। यह एक फ़ंक्शन है, लेकिन ओपी ने पूछा कि इसे अपनी हेडर फ़ाइल में कैसे काम करना है - इसलिए इसे थोड़ा और स्पष्टीकरण की आवश्यकता हो सकती है कि कहां रखा जाए। फिर से, आपका स्वागत है, आपको यहां आने की खुशी है!
टिम मालोन

2
यह वास्तव में यहाँ केवल अच्छा जवाब है, और अधिक उत्थान होना चाहिए था।
लछो तोमोव

2

ब्लॉग इंडेक्स पेज पाने के लिए , मैंने पाया

if ( !is_front_page() && is_home() ) {
  // blog page
}

मेरे लिए काम नहीं कर रहा है, मुझे ब्लॉग पेज post_id की पहचान करने के लिए get_option ('page_for_posts') फ़ंक्शन का उपयोग करना था, मेरा उत्तर है

if ( !is_front_page() && is_home() ){  

    if ( empty ( $post_id) ) {
        global $post;
        $post_id =  get_option( 'page_for_posts' );
    }

    //blog page
}

0

एक ट्रिकी विधि है।

http://example.com/blog

मान लीजिए अगर आपका ब्लॉग पेज स्लग है blog, तो आप इस कोड का उपयोग कर सकते हैं।

global $wp_query;
if($wp_query->query['pagename']=='blog'){
// this is blog page
}

0

HOMEPAGE

if(is_home() && is_front_page() || is_front_page()): // static or default hompage
 ...
endif;

ब्लॉग

if(is_home() && !is_front_page()): // blog
 ...
endif;

0

मुझे लगता है कि मैं बहुत ही सरल था, मैं एक ही स्थिति में था और मैंने निम्नलिखित तकनीक का उपयोग किया जो पेज स्लग का उपयोग करना है।

if( is_page('blog') ) {
echo "This is your blog page"; 
}

लेकिन सुनिश्चित करें कि आपने हाल के ब्लॉग पोस्ट प्रदर्शित करने के लिए मुखपृष्ठ का चयन नहीं किया है और आपने ब्लॉग या समाचार आदि जैसे ब्लॉग के लिए एक विशिष्ट पृष्ठ निर्धारित किया है, बस उस पृष्ठ का उपयोग करें और आप ठीक हो जाएंगे।


0

आप उपयोग कर सकते हैं..

<?php if ( is_single() ) { ?>

Do stuff here

<?php } ?>

यह जाँचने के लिए कि क्या यह एक एकल ब्लॉग पोस्ट है। या ...

<?php if ( is_home() ) { ?>

Do stuff here

<?php } ?>

यह जांचने के लिए कि क्या यह ब्लॉग मुखपृष्ठ है


2
अगर आपने ब्लॉग पेज नहीं बदला है तो काम नहीं करता है
cdmckay

यह ओपी को एक सही उत्तर प्रदान नहीं करता है। यह इंगित करता है कि आप एक ही पोस्ट पर हैं, न कि "ब्लॉग पेज"।
बटलरब्लॉग

-1

मैं इस तरह का उपयोग करता हूं

// Get body classes as array
$body_classes = get_body_class();
// Check if "blog" class exists in the array
if(in_array("blog", $body_classes)) {
   // Do stuff
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.