我打电话的时候好像得到了额外的帖子数据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次。
最合适的回答,由SO网友:s_ha_dum 整理而成
您正在构建阵列and在外循环的每次迭代中对其进行迭代。想想会发生什么。
外环的第一次迭代
$get_year
成为
array(\'2012\')
然后迭代
echo
ing“;2012年;。
第二次迭代
$get_year
成为
array(\'2012\',2013\')
然后迭代
echo
ing“;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();