लूप (WP_Query) के पदों की गिनती?


10

मैंने इस तरह से पोस्ट की NO प्रदर्शित करने की कोशिश की:

<?php 
 $news_2 = new WP_Query( array ('post_type'=> 'jobs','posts_per_page'=> '10' , 'meta_key' => 'status_for_jobs','meta_value' => '1') );
  if ( $news_2->have_posts() ) { while ( $news_2->have_posts() ) { $news_2->the_post();

  $count = $news_2->post_count;

  ?>

    <li><h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3></li>



    <?php } } ?> <?php wp_reset_query(); ?> 

यदि पोस्ट की संख्या = 0 मुझे यह प्रदर्शित करने की आवश्यकता है: -

<?php 
 $news_2 = new WP_Query( array ('post_type'=> 'jobs','posts_per_page'=> '10' , 'meta_key' => 'status_for_jobs','meta_value' => '1') );
  if ( $news_2->have_posts() ) { while ( $news_2->have_posts() ) { $news_2->the_post();

  $count = $news_2->post_count;

  if ($count  == '0') {

  ?>
  <li><h3><a href="javascript:void(0)">No Post</a></h3></li>

  <?php
  } else {
  ?> 
    <li><h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3></li>

<?php  }  ?>

    <?php } } ?> <?php wp_reset_query(); ?> 

लेकिन कुल पदों के बजाय, मुझे कोई चीज़ नहीं मिल रही है।

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


2
अरे, आपको जो 2 उत्तर प्रदान किए गए हैं, उनमें से दो पर वापस आना और तौलना चाहते हैं?
हेलगेटहाइकिंग 10

यदि उत्तर में से कोई भी आपके लिए उपयोगी था, तो उसे स्वीकार करने पर विचार करें। देखें » जब कोई मेरे प्रश्न का उत्तर दे तो मुझे क्या करना चाहिए? «और / या» मतदान क्यों महत्वपूर्ण है? «, वर्डप्रेस विकास मॉडल के बारे में अधिक जानकारी सहायता केंद्र पर उपलब्ध है
निकोलई

जवाबों:


23

कुछ अतिरिक्त जानकारी, पदों को फिर से गिनने की आवश्यकता नहीं है, क्योंकि WP_Queryआपके लिए पहले से ही ऐसा है। इसे स्पष्ट करने के लिए, क्लास के संदर्भ से कुछ जानकारी WP_Queryजो »गुण« अनुभाग में पाई गई हैं:

$ post_count
पदों की संख्या प्रदर्शित की जा रही है।

$ found_posts
वर्तमान क्वेरी मापदंडों से मेल खाते हुए कुल पदों की संख्या पाई गई

इसका मतलब क्या है

  1. $post_countआपको कुल पद गणना नहीं देगा। यह सबसे अधिक संभावना है कि आप post_per_pageपैरामीटर के साथ परिभाषित किए गए पदों की संख्या देंगे , जब तक कि आप उससे कम पद नहीं हैं या आप अंतिम पृष्ठ पर हैं और केवल कुछ ही पद शेष हैं।
  2. $found_postsकिसी विशिष्ट क्वेरी से संबंधित पोस्ट की कुल संख्या प्राप्त करने के लिए उपयोग किया जा सकता है। इसलिए उन्हें फिर से गिनने की कोई जरूरत नहीं है।

आपके मामले में आप अपने $countचर में कुल गणना इस तरह प्राप्त कर सकते हैं :

$count = $news_2->found_posts;

इसके अलावा, @helgatheviking सही है, जो आपने अपने प्रश्न में दिखाया है, उससे आपको अतिरिक्त सशर्त की आवश्यकता नहीं है, लेकिन बस उस have_posts()विधि का उपयोग कर सकते हैं , जो आपके पास पहले से है, उसके लिए, जैसे उसने सुझाव दिया था।


4
पाया_ संपत्ति के लिए +1। आप हर दिन कुछ नया सीखते हैं! :)
हेलगेटाइकिंग

4

यदि कोई पोस्ट नहीं मिली है, तो आपको कुछ अलग दिखाने के लिए पदों को गिनने की आवश्यकता नहीं है। आप बस elseअपने if($news_2->have_posts())चेक के हिस्से का उपयोग कर सकते हैं ।

$news_2 = new WP_Query( array ('post_type'=> 'jobs','posts_per_page'=> '10' , 'meta_key' => 'status_for_jobs','meta_value' => '1') );

if ( $news_2->have_posts() ) { 

    while ( $news_2->have_posts() ) { 

        $news_2->the_post();

    ?> 

    <li><h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3></li>

<?php  } 

    } else { ?>

    <li><h3>No Post</h3></li>

    <?php } ?> 

<?php wp_reset_query(); ?> 

लेकिन अगर आपको वास्तव में दिए गए पदों की संख्या की गणना करने की आवश्यकता है, तो आप उपयोग कर सकते हैं

$count = count( $news_2->posts );
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.