我试图在已经以博客形式列出帖子的类别页面上,以列表的形式列出某个类别的所有帖子。我正在尝试在标题区域中这样做,以便您可以全面查看页面上的帖子。我发现了这个:
<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>
但它似乎总是把其中一个帖子从名单上删掉。没有插件,有没有更简单的方法?
谢谢
最合适的回答,由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; ?>