एक पृष्ठ पर कई प्रश्नों का उपयोग करते समय वर्तमान लूप की गणना करें


10

मैं एक लूप के अंदर वर्तमान पदों की गिनती प्राप्त करने की कोशिश कर रहा हूं। मैं अपने विषय में एक पृष्ठ पर कई लूप का उपयोग कर रहा हूं। अब तक मेरे पास:

$my_post_count = $wp_query->post_count;

लेकिन जब मैं $ my_post_count प्रिंट करता हूं, तो यह मेरी WP साइट पर सभी पोस्टों की संख्या लौटाता है। यह एक पृष्ठ पर कई प्रश्नों का उपयोग करने के साथ कुछ कर सकता है? मैंने हर पाश के बाद wp_reset_query का उपयोग करके यह सुनिश्चित करने की कोशिश की कि मैं चीजों को उस तरह से फेंक नहीं रहा हूं। मैं क्या गलत कर रहा हूं?

जवाबों:


29

$wp_query पृष्ठ का मुख्य लूप पकड़ें और एकाधिक लूप बनाने के लिए उपयोग नहीं किया जाना चाहिए।

यदि आप नई WP_Queryवस्तु का उपयोग कर रहे हैं तो आपका चर जो इसे रखता है, उसकी गिनती के अनुसार होगा:

$my_query = new WP_Query();
// stuff
$count = $my_query->post_count;

यदि आप उपयोग कर रहे हैं, get_posts()तो WP_Queryवस्तु सुलभ नहीं है और आपको बस सेट लौटा हुआ गणना करना चाहिए:

$posts = get_posts();
$count = count($posts);

नोट: यदि आप मुख्य पाश में हैं, तो आप उपयोग कर सकते हैं WP_Queryके माध्यम सेglobal $wp_query
mrmadhat

5

मेरा मानना ​​है कि post_count वैश्विक में संग्रहीत है, इसलिए कस्टम लूप से पहले आपको इसे सेट करना चाहिए 0, क्योंकि आप इसे लूप के बाहर उपयोग कर सकते हैं, लेकिन यह इस बात पर निर्भर करता है कि आप अपनी कई क्वेरी को कैसे संरचित कर रहे हैं, हो सकता है कि आप उन्हें अपने पोस्ट में जोड़ सकते हैं ?

एक और तरीका है जो मैं लूप के भीतर उपयोग करता हूं जो current_post + 1उदाहरण के लिए, पोस्ट का उपयोग करता है ।

<?php $my_query = new WP_Query();?>
     <?php if ($my_query->have_posts()) :while ($my_query->have_posts()) : $my_query->the_post();

           $count_posts = $my_query->current_post + 1; //counts posts in loop

     endwhile;?>

2

WP_Query का उपयोग कर एक वैकल्पिक समाधान होगा:

           <?php 
               $args = array(
               'post_type' => 'post'
               );
            $the_query = new WP_Query( $args );
            $totalpost = $the_query->found_posts; 
            ?> 

0

पेजिनेशन सहित कुल पोस्ट की गणना करने का सरल तरीका

<?php  global $wp_query
   echo $wp_query->found_posts; ?>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.