我有一个运行主循环的内容模板:
<?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()
不应改变任何全局变量。
答案 0 :(得分:1)
您正在覆盖global $post
声明中The Loop中设置的foreach
:
foreach( $posts_array as $post )
使用其他变量名称,您不应该遇到问题:
foreach( $posts_array as $my_post )