Как вернуть один результат, если все сообщения в цикле соответствуют условию - PullRequest
0 голосов
/ 06 декабря 2011

это некоторые базовые вещи, ЕСЛИ ТОЛЬКО операторы, но я новичок в коде, так что я надеюсь, что кто-то может бросить мне кость: -).

У меня есть несколько постов, в которых есть пользовательское поле даты.Я хочу:

1) пройтись по всем этим сообщениям и оценить, остались ли поля даты для всех сообщений в прошлом.Если это так, я хочу отобразить специальное сообщение .

2) Если только одна из публикаций была в прошлом, я хочу продолжить оценку, пока не будут достигнуты все записи в запросе.

3) Если хотя бы одна запись с датойчто в будущем найдено У меня есть еще контент для отображения из этого поста вместо специального сообщения .

В настоящее время специальное сообщение только отображаетсякогда элемент в цикле вообще не имеет содержимого публикации.Я также смог заставить его возвращать сообщение после оценки каждого сообщения, но затем я получил специальное сообщение для каждого оцениваемого сообщения, и я просто хочу получить одно сообщение даже в любой момент любой изсообщения возвращают истину.

Мой текущий код:

                        <?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();?>

Ответы [ 2 ]

1 голос
/ 06 декабря 2011

Вот моя маленькая кость: используйте логический флаг, чтобы определить, нужно ли отображать специальное сообщение, и отображать ли сообщение только после цикла.Сделайте что-то вроде этого:

 Set $specialmessage = true;

перед циклом.Затем, внутри цикла, когда вы обнаружите сообщение, более новое, чем дата, с которой вы проверяете, установите его в false и вставьте the_content в держатель.Вы можете использовать break, чтобы выйти из цикла, если хотите. Затем,

if($specialmessage)
     echo 'special message'
else
     echo the_content_placeholder.

Не эксперт по кодированию, но мой лучший совет.

0 голосов
/ 06 декабря 2011

Бросок костей:
Держите php и выходной html отдельно.Таким образом, вы можете редактировать результаты дальше, прежде чем что-либо выводить, и потом будет намного легче что-то изменить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...