2012-03-24 89 views
4

我正在使用WP_Query循環通過wordpress中的自定義帖子類型。我的循環如下所示:WordPress的,如果沒有循環的結果,不顯示標題

<div class="bigRedStrip"> 
    <h2>Available Now!</h2> 
</div> 

<ul> 
    <?php $loop = new WP_Query(array('post_type' => 'films', 'post_child' => 0, 'posts_per_page' => 8,'orderby' => 'date', 'order' => 'ASC', 'film-categories' => 'blu-ray')); ?> 

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

      <li> 
      loop stuff here 
      </li> 

    <?php endwhile; ?> 
</ul> 

正如你所看到的,在循環之前有一個標題「Available Now!」。我想重新格式化循環,所以如果沒有帖子返回,那麼包含標題(div類bigRedStrip)的div將不會顯示。我已經嘗試了許多潛在的解決方案,但是我一直遇到的問題是,所有這些「解決方案」都需要將<div class="bigRedStrip">放入循環中,這會導致每個返回的帖子都會重複標題。這個想法是讓標題只顯示一次。任何想法我可以做到這一點?

回答

5

你只需要把東西拉開一點。首先,運行查詢:

<?php $loop = new WP_Query(array('post_type' => 'films', 'post_child' => 0, 'posts_per_page' => 8,'orderby' => 'date', 'order' => 'ASC', 'film-categories' => 'blu-ray')); ?> 

然後檢查是否有東西:

<?php if ($loop->have_posts()) { ?> 

<div class="bigRedStrip"> 
    <h2>Available Now!</h2> 
</div> 

... 

如果是這樣,只是遍歷帖子:

... 

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

      <li> 
      loop stuff here 
      </li> 

    <?php endwhile; ?> 
</ul> 

<?php } ?> 
0
<?php $loop = new WP_Query(array('post_type' => 'films', 'post_child' => 0, 'posts_per_page' => 8,'orderby' => 'date', 'order' => 'ASC', 'film-categories' => 'blu-ray')); ?> 
<?php if ($loop->have_posts()){ 
<div class="bigRedStrip"> 
     <h2>Available Now!</h2> 
</div> 

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

     <li> 
     loop stuff here 
     </li> 

    <?php endwhile; ?> 
</ul> 
<?php } ?> 
+1

'WP_Query'尚未實現['countable'接口](http://php.net/countable)。 – hakre 2012-03-24 15:43:05

+0

謝謝,只是改變了它。我也是+1。 – 2012-03-24 15:44:05

+1

這個想法很好btw,我添加了一個功能請求:http://core.trac.wordpress.org/ticket/20296 – hakre 2012-03-24 16:20:39