在页面上列出当前类别的所有帖子

时间:2012-05-07 作者:Phill

我试图在已经以博客形式列出帖子的类别页面上,以列表的形式列出某个类别的所有帖子。我正在尝试在标题区域中这样做,以便您可以全面查看页面上的帖子。我发现了这个:

<ul>
<?php
global $post;
$category = get_the_category($post->ID);
$category = $category[0]->cat_ID;
$myposts = get_posts(array(\'numberposts\' => 5, \'category__in\' => array($category), \'post__not_in\' => array($post->ID),\'post_status\'=>\'publish\'));
foreach($myposts as $post) :
setup_postdata($post);
?>
<li>
<a href="<?php the_permalink(); ?>">
<?php the_title(); ?></a>
</li>
<?php endforeach; ?>
<?php wp_reset_query(); ?>
</ul>
但它似乎总是把其中一个帖子从名单上删掉。没有插件,有没有更简单的方法?

谢谢

1 个回复
最合适的回答,由SO网友:mrwweb 整理而成

好消息!我认为你让事情变得更难了。如果我理解你的问题rewind_posts(). 挖掘WordPress总是有用的a nice summary of it.

因为这两个任务都涉及循环执行相同的查询,所以您不需要get_posts() 完全

相反,您需要使用上述rewind_posts() 类似这样:

<?php if( have_posts() ) : ?>
<!-- Your list of posts -->
<ul>
<?php while ( have_posts() ) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>

<?php rewind_posts(); // second <del>verse</del> query, same as the first ?>

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

<!-- your "blog-style" stuff -->

<?php endwhile; endif; ?>

结束