अगर अगले पृष्ठ पर यह निर्धारित करने के लिए कि कैसे


16

मैं वर्डप्रेस विकास के लिए नया हूं, बस अपने HTML को एक वर्डप्रेस थीम में बदलने की कोशिश कर रहा हूं, मैंने क्रिस कॉयर के रिक्त विषय के साथ शुरू किया।

<div class="navigation">
    <div class="next-posts">
        <?php next_posts_link('&laquo; Older Entries') ?>
    </div>
    <div class="prev-posts">
        <?php previous_posts_link('Newer Entries &raquo;') ?>
    </div>
</div>

मैं डिव को कैसे आउटपुट कर सकता हूं यदि ए next_posts_link()। मुझे इसकी आवश्यकता है क्योंकि मैं <ul>अपने पृष्ठांकन के लिए उपयोग करूंगा। अगर मैं ऐसा नहीं करता हूं, तो मुझे एक खाली गोली मिलेगी

जवाबों:


18

आप उपयोग कर सकते हैं get_previous_posts_linkऔर get_next_posts_link यह निर्धारित करने के लिए कि क्या वे इस तरह मौजूद हैं:

$prev_link = get_previous_posts_link(__('&laquo; Older Entries'));
$next_link = get_next_posts_link(__('Newer Entries &raquo;'));
// as suggested in comments
if ($prev_link || $next_link) {
  echo '<ul class="navigation">';
  if ($prev_link){
    echo '<li>'.$prev_link .'</li>';
  }
  if ($next_link){
    echo '<li>'.$next_link .'</li>';
  }
  echo '</ul>';
}

उम्मीद है की यह मदद करेगा


केवल समस्या यह है कि आप संभावित रूप से एक खाली सूची प्रस्तुत कर सकते हैं, जो अमान्य मार्कअप का उत्पादन करेगा, और प्रभाव में वही समस्या होगी जो उपयोगकर्ता के पास मौजूदा कोड के साथ है ..
t31os

3
@ t31os, मुझे लगता है कि मैं कुछ ऐसा if ($prev_link || $next_link) // output ul
करूंगा

हाँ, यह करना होगा ..;)
t31os

कोड अपडेट किया गया
Bainternet

कोड के लिए धन्यवाद, यह echo '</ul>';अंतिम पंक्ति btw से ठीक पहले गायब है ।
डेवी

13

मैंने इसे कुछ समय पहले लिखा था, लेकिन अभी भी मान्य होना चाहिए:

http://www.ericmmartin.com/conditional-pagepost-navigation-links-in-wordpress-redux/

आप अपनी functions.phpफ़ाइल में निम्न फ़ंक्शन जोड़ सकते हैं :

/**
 * If more than one page exists, return TRUE.
 */
function show_posts_nav() {
    global $wp_query;
    return ($wp_query->max_num_pages > 1);
}

अपना कोड अपडेट करें:

<?php if (show_posts_nav()) : ?>
<div class="navigation">
    <div class="next-posts"><?php next_posts_link('&laquo; Older Entries') ?></div>
    <div class="prev-posts"><?php previous_posts_link('Newer Entries &raquo;') ?></div>
</div>
<?php endif; ?>

3

सबसे अच्छा समाधान जाँच है $wp_query->max_num_pages, लेकिन आप भी उपयोग कर सकते हैं:

<?php
if(paginate_links()) {
...
}

1
यह ध्यान रखना महत्वपूर्ण है कि $wp_queryहर जगह उपलब्ध नहीं है; उदाहरण के लिए, मैंने इसे WooCommerce टेम्पलेट ओवरराइड के भीतर उपयोग करने की कोशिश की और ऑब्जेक्ट मौजूद नहीं था, इसलिए मुझे functions.phpएरिक मार्टिन के जवाब का उपयोग करके इसके बजाय इसे भीतर से कॉल करना पड़ा ।
ब्रेट

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