Php 如果循环中的所有帖子都符合条件,如何返回单个结果

Php 如果循环中的所有帖子都符合条件,如何返回单个结果,php,wordpress,if-statement,Php,Wordpress,If Statement,这是一些基本的IF-THEN语句,但我是一个编码新手,所以我希望有人能给我一根骨头:-) 我有几个帖子有一个自定义的日期字段。我想: 1) 循环浏览所有这些帖子,并评估每个帖子的日期字段是否都是过去的。如果是,我想显示特殊消息 2) 如果只有一篇文章是在过去,我想继续评估,直到查询中的所有文章结束 3) 如果发现哪怕是一篇日期在未来的帖子,我也可以从那篇帖子中看到更多的内容,而不是特别的消息 目前,只有当循环中的项目根本没有post内容时,才会显示特殊消息。我还能够让它在每个帖子被评估后返回消息

这是一些基本的IF-THEN语句,但我是一个编码新手,所以我希望有人能给我一根骨头:-)

我有几个帖子有一个自定义的日期字段。我想:

1) 循环浏览所有这些帖子,并评估每个帖子的日期字段是否都是过去的。如果是,我想显示特殊消息

2) 如果只有一篇文章是在过去,我想继续评估,直到查询中的所有文章结束

3) 如果发现哪怕是一篇日期在未来的帖子,我也可以从那篇帖子中看到更多的内容,而不是特别的消息

目前,只有当循环中的项目根本没有post内容时,才会显示特殊消息。我还能够让它在每个帖子被评估后返回消息,但随后我得到了每个被评估帖子的一条特殊消息,我只想得到一条消息,即使在任何一点上,任何帖子都返回true

我目前的代码是:

                        <?php

                        $parent = get_cat_name($category[0]->category_parent);
                        $cur_cat = $cur_cat_slug; 
                        $cur_date = current_time('timestamp',0);

                        echo $cur_cat_name;

                        ?>
                    </div>

                    <div class=dates>
                        <?php

                        $categoryvariable=$category; // assign the variable as current category
                        $query= 'cat=' . $cur_cat_id. '&posts_per_page=100&meta_key=date_value&orderby=meta_value&order=ASC&meta_compare=>=&meta_value=$cur_date'; // concatenate the query
                        query_posts($query); // run the query
                        if ( have_posts() ) : while ( have_posts() ) : the_post();
                        $date_value = get_post_meta($post->ID, 'date_value', true);
                        if ($date_value>=$cur_date)
                            {
                        ?> 
                            <a class=dates-link href="<?php the_permalink(); ?>">
                            <li><?php echo date("D, n/j/Y, g:ia", get_post_meta($post->ID, 'date_value', true)); ?> - <?php $key="course_endtime"; echo get_post_meta($post->ID, $key, true); ?>
                            </a>
                        <div class=info>
                            <table cellpadding=0 cellspacing=3 border=0>
                                <tr>
                                    <td valign=top><img src="<?php bloginfo('template_directory'); ?>/images/i.jpg"></td>
                                    <td>Click any date for more info about a course and to register online.</td>
                                </tr>
                            </table>
                        </div>
                        <?php
                            } 

                        endwhile; else:

                        ?>

                        <div class=course-content>Sorry, no courses are currently scheduled. See <a href="http://dynamictactical.org/courses/" style="color:#000000; text-decoration:underline;">Course Calendar</a> for all upcoming DTT courses.</div>
                        <? endif;
                        wp_reset_query();?>

/图片/i.jpg“>
单击任意日期以获取有关课程的详细信息,并在线注册。
抱歉,当前没有课程安排。有关所有即将推出的DTT课程,请参阅。
扔给你骨头:
将php和输出html分开。这样,您可以在输出任何内容之前进一步编辑结果,以后更改内容会容易得多。

以下是我的小贴士: 使用布尔标志确定是否需要显示特殊消息,并仅在循环后显示消息。 这样做:

 Set $specialmessage = true;
在循环之前。 然后,在循环中,当您发现一篇文章比您测试的日期更晚时,将其设置为false并将内容粘贴到一个保持器中。如果您愿意,可以使用break退出循环。然后

if($specialmessage)
     echo 'special message'
else
     echo the_content_placeholder.
不是编码专家,而是我最好的建议