0

我有一个运行主循环的内容模板:

<?php while (have_posts()) : the_post(); ?>
<?php endwhile; ?>

在这个循环中,我创建了一个get_posts()

<?php 
$args = array(
 'posts_per_page' => '2',
 'category__in' => array(2),
 'post__not_in' => array(get_the_id()),
 'order'    => 'DESC'
);

$posts_array = get_posts($args);
if(isset($posts_array) && !empty($posts_array)) : foreach( $posts_array as $post ) :
?>
 some html
<?php endforeach; endif; ?>

这完美地工作,但是当我在foreach循环之外并且我调用返回的是循环get_the_id()ID最后一个,foreach尽管文档状态get_posts()不应该改变任何全局变量。

4

1 回答 1

1

您正在覆盖语句global $post中 The Loop 中设置的内容:foreach

foreach( $posts_array as $post )

使用不同的变量名,你不应该有问题:

foreach( $posts_array as $my_post )
于 2013-04-28T19:34:45.653 回答