我有两个不同的get_posts函数,如下所示:
<!-- Begin Left Middle -->
<div id="leftmiddle">
<h1><a href="/category/recent-cases">Recent Cases</a></h1>
<?php
global $post;
$postslist = get_posts('category=5&numberposts=2');
foreach ($postslist as $post) :
setup_postdata($post);
?>
<div id="latest_post">
<span class="theme date"><?php the_date(); ?></span>
<br />
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php the_excerpt(); ?>
</div>
<?php endforeach; ?>
</div>
<!-- End Left Middle -->
<!-- Begin Right Middle -->
<div id="rightmiddle">
<h1><a href="/blog">Latest Posts</a></h1>
<?php
$postslist = get_posts('numberposts=2&order=DESC&orderby=date&category=-5');
foreach ($postslist as $post) :
setup_postdata($post);
?>
<div id="latest_post">
<span class="theme date"><?php the_date(); ?></span>
<br />
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php the_excerpt(); ?>
</div>
<?php endforeach; ?>
</div>
<!-- End Right Middle -->
现在在 rightmiddle 中,它按预期完成所有操作;仅列出不属于类别5的两个最新帖子。但是,在 leftmiddle 中,它会列出类别5中的所有帖子。如果我删除 leftmiddle中的类别参数或者我将其更改为 rightmiddle 中的否定参数,numberposts按预期工作。那是为什么?
答案 0 :(得分:2)
尝试使用两个不同的变量名称来保存您对get_posts()
的调用的返回值。现在您使用相同的变量名$postslist
。它们可能会干扰,这就是 rightmiddle 中最后一次调用的原因。
您也在左侧声明global $post
,但不是正确的。