Wordpress, если нет результатов из цикла, не показывать заголовок - PullRequest
4 голосов
/ 24 марта 2012

Я использую 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, содержащий заголовок (класс div bigRedStrip), не будет отображаться.Я испробовал ряд потенциальных решений, но проблема, с которой я продолжаю сталкиваться, заключается в том, что все эти «решения» требуют помещения <div class="bigRedStrip"> в цикл, что приводит к повторению заголовка для каждого возвращаемого сообщения.Идея состоит в том, чтобы заголовок отображался только один раз.Есть идеи, как мне это сделать?

Ответы [ 2 ]

5 голосов
/ 24 марта 2012

Вам нужно всего лишь немного разложить вещи. Прежде всего выполните запрос:

<?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 голосов
/ 24 марта 2012
<?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 } ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...