检查长度WP_Query(array())

时间:2018-11-29 17:50:51

标签: php wordpress

你好,如果下面的查询没有结果,我正在尝试显示一些信息。像<P> There are no upcoming Events</p>

我如何检查数组的长度以知道它是否包含帖子

这是代码

<?php
                $now = date('Ymd');
                $frontPageEvents = new WP_Query(array(
                  'posts_per_page' => 2,
                  'post_type' => 'event',
                  'meta_key' => 'event_date',
                  'orderby' => 'meta_value_num',
                  'order' => 'ASC',
                  'meta_query' => array(
                    array(
                      'key' => 'event_date',
                      'compare' => '>=',
                      'value' => $now,
                      'type' => 'numeric'
                    )
                  )


                ));


                  while ($frontPageEvents -> have_posts()){
                    $frontPageEvents -> the_post();

                    ?>


                    <div class="">
                      <div class="">
                        <div class=""> <?php
                        $date = new DateTime(get_field('event_date'));
                         echo $date->format('d');
                        ?> <br> <?php echo $date->format('M'); ?></div>

                      </div>
                      <div class="">
                        <img class=""src="<?php the_post_thumbnail_url('eventFrontThumbnail') ?>" alt="">
                      </div>
                      <div class="">
                        <div class="">
                          <h3> <?php the_title(); ?></h3>
                        </div>
                        <div class=""><?php echo wp_trim_words(get_the_content(),10); ?></div>


                        <div class=""> <p>

                          <a class="btn btn-primary"href="<?php the_permalink(); ?>">read more...</a>
                        </p>
                        </div>
                      </div>

                    </div>
                  <?php } ?>

所以

while ($frontPageEvents -> have_posts()){
                    $frontPageEvents -> the_post();

                    ?>

如果没有upcoimg事件,我想显示一段而不是一些提示

2 个答案:

答案 0 :(得分:1)

使用empty函数简单地检查数组是否为空。

if (empty($frontPageEvents)) {
    echo 'There are no upcoming events';
} else {
        while ($frontPageEvents -> have_posts()){
               $frontPageEvents -> the_post();
  ?>

如果有事件输出,别忘了右括号}

答案 1 :(得分:1)

只需使用一些条件:

<?php if (!$frontPageEvents->have_posts()){ ?>
    <p> some thing </p>
<?php }

while ($frontPageEvents -> have_posts()){
    $frontPageEvents -> the_post();
?>
...

函数have_posts()返回一个布尔值。您可以在此处阅读文档:

https://codex.wordpress.org/Function_Reference/have_posts