2012-06-08 15 views
5

मैं यह देखने के लिए कैसे परीक्षण कर सकता हूं कि कोई WP_Query ऑब्जेक्ट कोई मेल नहीं लौटाता है या नहीं? मैं कुछ ऐसा करने में सक्षम होना चाहते हैं की तरह इस एक टेम्पलेट है:परीक्षण यदि WP_Query ऑब्जेक्ट खाली है

<?php 
    $my_query = new WP_Query(array('post_type' => 'biographies')) 
    if(***HOW DO I TEST $my_query HERE***) { 
     //if $my_query finds anything loop through it here 
    } else { 
     //if $my_query does not find anything    
    } 
?> 

संपादित

बेहतर उदाहरण के लिए, मैं अगर क्वेरी कुछ भी पाता है केवल h2 प्रदर्शित करना चाहते हैं:

<?php 
    $outside_leasing_query = new WP_Query(array('post_type' => 'resin_biographies', 'tax_query' => array(
     'relation' => 'AND', 
     array('taxonomy' => 'resin_buildings', 'field' => 'slug', 'terms' => $page_slug), 
     array('taxonomy' => 'resin_leasing_companies', 'field' => 'slug', 'terms' => 'rubenstein-partners', 'operator' => 'NOT IN') 
    ))); // resin_buildings taxonomy term slug must match page slug 
?> 

<h2>Outside Leasing Contacts</h2> 

<?php while ($outside_leasing_query->have_posts()) : $outside_leasing_query->the_post(); ?> 

    <article <?php post_class('group'); ?>> 
     <?php 
     if(get_post_meta($post->ID, '_biography_headshot', true) != '') { 
      echo '<img class="contact-thumb" src="' . get_post_meta($post->ID, '_biography_headshot', true) . '" alt="'. get_the_title() .'" />'; 
     } else { 
      echo '<img class="contact-thumb-placeholder" src="' . get_bloginfo('template_url') . '/images/default_headshot.jpg" alt="'. get_the_title() . '" />'; 
     } 
     ?> 
     <div class="contact-info"> 
      <hgroup> 
       <?php the_title('<h3>', '</h3>'); ?> 
       <h4 class="contact-title"><?php echo get_post_meta($post->ID, '_biography_title', true); ?></h4> 
      </hgroup> 
      <div class="contact-address"><?php echo wpautop(get_post_meta($post->ID, '_biography_address', true)); ?></div> 
      <div class="contact-tel"><span>T</span> <?php echo get_post_meta($post->ID, '_biography_tel', true); ?></div> 
      <?php if(get_post_meta($post->ID, '_biography_fax', true) != '') { ?> 
       <div class="contact-fax"><span>F</span> <?php echo get_post_meta($post->ID, '_biography_fax', true); ?></div> 
      <?php } ?> 
      <div class="contact-email"><a href="mailto:<?php echo get_post_meta($post->ID, '_biography_email', true); ?>"><?php echo get_post_meta($post->ID, '_biography_email', true); ?></a></div> 
     </div> 
    </article> 

<?php endwhile; ?> 
<?php wp_reset_postdata(); ?> 

उत्तर

6

मानक वर्डप्रेस लूप हैस_पोस्ट्स() का उपयोग करके यह आपके लिए करता है। !

($ my_query-> have_posts())

तो

:

<?php 
    $my_query = new WP_Query(array('post_type' => 'biographies')) 
    if(!($my_query->have_posts())) { 
     //if $my_query finds anything loop through it here 
    } else { 
     //if $my_query does not find anything    
    } 
?> 
+0

ठीक है, लेकिन मैं अगर क्वेरी के आधार पर पृष्ठ पर गैर क्वेरी जानकारी प्रदर्शित करने के लिए देख रहा हूँ कोई सामग्री है यह जानकारी वास्तव में क्वेरी के साथ पृष्ठ के एक अलग हिस्से में प्रदर्शित होती है। इसलिए मैं पृष्ठ के शीर्ष पर एक एकल WP_Query ऑब्जेक्ट बनाना चाहता हूं, और उसके बाद पृष्ठ के कई हिस्सों में जानकारी आउटपुट करना चाहता हूं। शीर्ष पर WP_Query ऑब्जेक्ट बनाने के लिए ऐसा करने का सबसे अच्छा तरीका है, तो पृष्ठ पर लूप के दौरान एकाधिक हैं? – Combobreaker

+0

जो मैं वास्तव में करने की कोशिश कर रहा हूं उसका एक नया उदाहरण जोड़ा गया। – Combobreaker

5

मैं तुम्हें इस्तेमाल कर सकते हैं आंकड़ा :

//if $my_query does not find anything 

जुस भी आप इस तरह की जरूरत है

$my_query_found_something = 'not'; 

फिर इसका इस्तेमाल: टी इस तरह एक पैरामीटर सेट

if ($my_query_found_something == 'not') { 
// keep looking 
} 
0

अपने पहले उदाहरण में, जहाँ आप टिप्पणी

<?php 
$my_query = new WP_Query(array('post_type' => 'biographies')); 
if($my_query->have_posts()) : while($my_query->have_posts()) : $my_query->the_post(); 
?> 
<!-- YOUR POST(S) --> 
<?php endwhile; else : ?> 
<p>No posts found</p> 
<?php endif; ?> 
संबंधित मुद्दे