Else语句在失败的IF语句后不触发

时间:2014-04-08 作者:DLaverick

我在一个客户网站上工作,在WordPress更新到3.8版本后,我6个月前写的声明似乎停止了工作,我看不到也不知道为什么。

没有出现错误,它只是在类字段中返回带有post Id的空div。如果If语句为false,则需要回显不同的数据。但遗憾的是,它还没有吐出第一个H3标签。

<div class="span4">
    <?php // Blog post query
    $today = date(\'Y-m-d\');

    $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
    $currentID = get_the_ID();
    query_posts(array(
       \'post\' => \'ID\', 
       \'post_type\' => \'foodswaps\', 
       \'posts_per_page\' => 3, 
       \'meta_key\' => \'00.event-date\',
       \'meta_value\' => $today,
       \'meta_compare\' => \'>=\',
       \'orderby\' => \'meta_value\',
       \'order\' => \'ASC\' 
     ));

    if (have_posts()) : ?>
    <h3 class="calendar">Upcoming Swaps</h3>
    <?php while (have_posts()) : the_post(); ?>
        <div <?php post_class(\'clear-spacer no-margin\'); ?>>                                    
                <?php 
                $field_name = "00.event-date";
                $listEventDate = get_post_meta($post->ID, $field_name, true);
                if (($listEventDate == \'E.g. yyyy-mm-dd\') && ($listEventDate == \'\')) { ?>

                <a href="<?php the_permalink(); ?>" title="<?php  the_title_attribute( \'echo=0\' ); ?>">
                    <h4><?php the_title();?></h4>
                    <?php 
                    $converted = date(\'Y-m-d\', strtotime($listEventDate));
                    $reversedDate = date(\'jS F Y\', strtotime($converted));

                    echo $reversedDate;?>
                </a>
                <?php  } ?>
        </div><!-- /.post_class -->
    <?php // end of blog post loop.
    endwhile; wp_reset_query(); // end of the loop and reset the query. 
    else: 
        echo \'<h3 class="theblog">Our Social Networks</h3>\';
        echo \'<p>Why not visit us on our social networks?</p>\';
    endif;?>

1 个回复
SO网友:Nicolai Grossherr

我看不出你的if-else语句有什么问题,所以我认为问题来自其他地方。你说你没有错误,我想你有debugging 已启用。此外,您是否调试并检查了-var_dumpprint_r it-the$wp_query 对象没有贴子,以查看它是否真的为空。

另一件事,你正在使用query_posts(), 你不应该这样。我不想重复这个论点,所以请看这两个问题以了解更多信息:

现在应该清除,更好地使用pre_get_postsWP_Queryget_posts.

还有一句话,您正在使用:

  • \'post\' => \'ID\'
在参数数组中,但post不是有效的参数-请参见question 了解更多信息。

结束

相关推荐