एक कस्टम Wordpress लूप (WP_Query) के पदों की गिनती?


41

मैंने इसे अपनाने की कोशिश की:

    <?php $count = count($custom_posts); ?>
    <h2><?php echo $count; ?></h2>

लूप के अंत में:

      <?php if ( bbp_get_forum_title() == 'Test Forum 1' ) : ?>
            <?php $custom_posts = new WP_Query(); ?>
            <?php $custom_posts->query('post_type=blocks&location=Business and Finance&order=DESC'); ?>
            <?php while ($custom_posts->have_posts()) : $custom_posts->the_post(); ?>
                <div class="ad">
                    <?php the_content(); ?>
                </div>
                <?php $count = count($custom_posts); ?>
                <h2><?php echo $count; ?></h2>
            <?php endwhile; ?>
      <?php endif; ?>

लेकिन कुल पदों के बजाय, मुझे यह आउटपुट मिल रहा है:

अनुवाद १

लोरम इप्सम डोलर अमेट, कंसेटेट्युर एडिपिसिंग एलीट, सेड डायम नोनमी निब युरिस्मोड टिंसीडंट उर लोरेट डोलोर मैग्ना अलिकम एरट वुल्लेट। उत बुद्धिमानी enim १

इसे ठीक करने के लिए कोई सुझाव?

जवाबों:


74

पदों की कुल संख्या प्राप्त करने का सही तरीका है:

<?php $count = $custom_posts->found_posts; ?>

http://codex.wordpress.org/Class_Reference/WP_Query#Properties

संपादित करें: संभवतः सही के रूप में @Kresimir पेंडिक के उत्तर को स्वीकार करना। post_countउस विशेष पृष्ठ के लिए पदों की गिनती है, जबकि found_postsसभी उपलब्ध पदों की गिनती है जो पृष्ठांकन के बिना क्वेरी की आवश्यकताओं को पूरा करता है। सुधार के लिए धन्यवाद।


धन्यवाद! अरे एक आखिरी सवाल। मैं उस नंबर का उपयोग कैसे कर सकता हूं यदि वह कथन है जो उस लूप से बाहर है (लूप से पहले)। क्योंकि ऐसा लगता है कि संख्या केवल तब प्रदर्शित होती है जब मैं उस लूप के बाद चर को रखता हूं।
janoChen

4
आप $ custom_posts-> query_ () के ठीक बाद $ count = $ custom_posts-> post_count डाल सकते हैं। ध्यान दें कि $ custom_posts-> post_count केवल आपको परिणाम सेट के उस 'पृष्ठ' में परिणामों की संख्या प्राप्त करता है। यदि आपको 'संपूर्ण' परिणाम सेट में कुल परिणाम प्राप्त करने की आवश्यकता है, तो $ custom_posts-> found_posts का उपयोग करें।
रॉबर्ट ड्यूरिन जूल

2
यह उत्तर अधिकांश स्थितियों के लिए सही नहीं है। पोस्ट_काउंट (इस पेज पर प्रदर्शित करने के लिए पोस्ट की संख्या) के बजाय पाया_पोस्ट (सभी पाए गए पोस्ट) का उपयोग करें। यह टिप्पणी तर्कपूर्ण रूप से बोल रही है, लेकिन सामाजिक रूप से नहीं बोल रही है।
हर्बर्ट वान-व्लिट

1
यह उत्तर गलत है। $custom_posts->post_countइस पृष्ठ पर दिखाए गए पदों की राशि लौटाएगा, इसलिए यह posts_per_pageक्वेरी के मूल्य या कम मूल्य को प्रदर्शित करेगा यदि शेष राशि दिखाने के लिए शेष है। सही जवाब होना चाहिए <@kresimir-pendic>के जवाब यह है कि का उपयोग करता है$custom_posts->found_posts
इन्फिनिटी मीडिया

42

मैनी ने सही प्रलेखन पृष्ठ को जोड़ा लेकिन post_countगलत है। पदों की कुल संख्या पाने के WP_Queryलिए "फाउंड_पोस्ट" का उपयोग करें

<?php

// The Query
$query = new WP_Query( $args );
$total = $query->found_posts;

3
यह एक स्वीकृत उत्तर होना चाहिए।
क्रिस्टीन कूपर

1
यह बिल्कुल सही जवाब है।
इन्फिनिटी मीडिया

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