我想在一个页面上列出所有帖子,但我希望帖子按标签分组。这在Wordpress中是否可行?
基本上就是这样:
自行车:
发表于2011年2月8日 一些帖子标题1 标签自行车
发表于2011年8月1日 一些帖子标题2 标签自行车
汽车:
发表于2011年5月8日 一些帖子标题5 标签车
发表于29/7/2011 一些帖子标题6 标签车
船:
发表于30/7/2011 一些帖子标题4 标记船
这可能吗?它应该是动态的,以便我可以从WP管理员创建新标签,它们会自动显示。
答案 0 :(得分:2)
使用get_tags()循环使用标记,并使用带有'tag_in'参数的get_posts。
即
<?php foreach(get_tags() as $term){ ?>
<?php $posts = get_posts( array( 'posts_per_page' => -1, 'post_type' => 'project', 'tag__in' => $term->term_id ) ); ?>
<?php if($posts) : ?>
<h3><?php echo $term->name; ?></h3>
<?php foreach($posts as $post) : ?>
<?php setup_postdata($post); ?>
<div class="item col-sm-12">
<a href="<?php the_permalink(); ?>">
<?php the_title(); ?> <br/>
</a>
<a class="button" href="<?php the_permalink() ?>">Read More</a>
</div>
<?php endforeach ?>
<?php wp_reset_postdata(); ?>
<?php endif; ?>
<?php } ?>
答案 1 :(得分:0)
这取决于。您是要尝试显示所有代码的帖子,还是只列出您已经决定使用的特定代码的所有帖子?
如果你知道要显示的标签,可以按照标签列出帖子。
<?php $bikePosts = new WP_Query('tag=bikes');
while ($bikePosts->have_posts()) : $bikePosts->the_post(); ?>
<h2>Bikes:</h2>
<p>Posted <?php the_time('j/m/Y'); ?> <?php the_title(); ?>
<?php endwhile;
//reset post data for next tag
wp_reset_postdata();
?>
更多信息:http://codex.wordpress.org/Class_Reference/WP_Query#Tag_Parameters