WordPress的 - 帖子中显示的帖子有相同的the_excerpt()输出
问题描述:
我遇到了一个问题,这是很烦人的。 问题是我在页脚中有两个循环,它们加载了来自两个不同类别的最后3个帖子。它看起来像:WordPress的 - 帖子中显示的帖子有相同的the_excerpt()输出
<?php $posts = get_posts('category=21&orderby=desc&numberposts=3'); foreach($posts as $post) { ?>
<div class="footer-text-block">
<a href="<?php the_permalink() ?>" target="_parent">
<span class="footer-white-bold"><?php the_title(); ?></span>
</a><br />
<span class="footer-grey-thick"><?php the_excerpt(); ?></span>
</div>
<?php } ?>
<?php $posts = get_posts('category=22&orderby=desc&numberposts=3');
foreach($posts as $post) { ?>
<div class="footer-text-block">
<a href="<?php the_permalink() ?>" target="_parent">
<span class="footer-white-bold"><?php the_title(); ?></span>
</a><br />
<span class="footer-grey-thick"><?php the_excerpt(); ?></span>
</div>
<?php } ?>
以及它的输出是: http://i.stack.imgur.com/5C58t.png
而这在其上显示的页脚我的帖子的内容: http://i.stack.imgur.com/R6ok7.png
你有什么想法为什么会发生这些家伙?
答
你有几个问题在这里
您需要重置POSTDATA 每自定义查询,这是后的每实例后
get_posts()
。您可以将您foreach
循环的每结束后只需添加
wp_reset_postdata();
你有一对夫妇使用相同$post
值foreach
循环。你必须记住,最后一个值存在外部你的foreach
循环,如果它没有被破坏,如果它具有相同的名称,它将影响下一个循环中的值foreach
。您可以将该值重命名为每个foreach
循环的唯一值,也可以在foreach
循环之后/之外使用unset($post)
。您需要先设置postdata,然后才能使用模板标签,如
the_excerpt()
或the_title()
。只需在您开始后添加setup_postdata($post);
foreach
循环
答
尝试使用setup_postdata($ post);以提供所有与岗位相关的数据。您需要:
foreach($posts as $post) {
setup_postdata($post);
// the rest of your code
}
谢谢!这解决了我的问题! – 2014-10-03 12:32:58
我的荣幸。请享用 :-) – 2014-10-03 12:33:40