Wordpress,如果没有循环结果,则不显示标题

时间:2012-03-24 15:32:25

标签: php wordpress loops conditional

我正在使用WP_Query在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>

正如您所看到的,在循环之前有一个标题,显示“立即可用!”。我想重新格式化循环,所以如果没有返回的帖子,那么将不会显示包含标题(div类bigRedStrip)的div。我已经尝试了许多潜在的解决方案,但我遇到的问题是,所有这些“解决方案”都需要将<div class="bigRedStrip">置于循环内,这会导致每个返回的帖子重复标题。这个想法是让标题只显示一次。我有什么想法可以做到这一点吗?

2 个答案:

答案 0 :(得分: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 } ?>

答案 1 :(得分: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 } ?>