获得额外帖子的元数据?

时间:2013-09-08 作者:UzumakiDev

我打电话的时候好像得到了额外的帖子数据get_the_time(\'Y\'); 我只有2篇帖子,但我似乎有3次约会?我不知道为什么。

代码如下:

<?php $args = array( \'post_type\' => \'post\', \'category_name\' => \'celebrity\');
        $loop = new WP_Query($args);
        while($loop->have_posts()) : $loop->the_post(); 
        $get_year[] = get_the_time(\'Y\'); 
        foreach($get_year as $year) {
          echo $year;
        }
        endwhile; wp_reset_postdata(); ?>
此输出:“2013 2013 2013”

似乎只有当我foreach 如果我只是echo get_the_time 它工作正常,输出两个“2013”。

这段代码的要点是,我只想要一个有帖子的年份列表。我的计划是将一年中发生的每一次事件粘贴到一个数组中array_unique() 每年都有回声。可能会有更好的方法来做到这一点,我愿意接受建议,但这是我想到的第一件事。

总而言之,当我只有2篇帖子时,我似乎得到了3次约会,而不是2次。

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

您正在构建阵列and在外循环的每次迭代中对其进行迭代。想想会发生什么。

外环的第一次迭代

$get_year 成为array(\'2012\') 然后迭代echoing“;2012年;。

第二次迭代

$get_year 成为array(\'2012\',2013\') 然后迭代echoing“;2012年“;和;2013年;。

你看到发生什么事了吗?你有echo对相同的数据进行了两次ed。你是echo对部分建造的$get_year 大堆你的帖子越多,问题就越严重,如果最终导致浏览器崩溃,我也不会感到惊讶。

拉那个foreach 退出另一个循环,以便只对其进行一次迭代--after it is has been completely constructed

$loop = new WP_Query($args);
while($loop->have_posts()) {
  $loop->the_post(); 
  $get_year[] = get_the_time(\'Y\'); 
}
foreach($get_year as $year) {
  echo $year;
}
wp_reset_postdata();

结束

相关推荐

POSTS_WHERE失败,查询中有多个自定义字段

单独查询这两个字段中的任何一个都会得到预期的结果(显示帖子)。但是,当这两个字段都包含在查询中时(例如下面的示例中显示的“foo”和“bar”),则不会显示帖子。function do_stuff( ) { global $wpdb; return \" AND ($wpdb->postmeta.meta_key = \'foo\' AND $wpdb->postmeta.meta_value = \'1\')