1

我想在一页上列出所有帖子,但我希望帖子按标签分组。这在 Wordpress 中可行吗?

基本上是这样的:


自行车:

发表于 2011 年 2 月 8 日 一些帖子标题 1 标签自行车

发表于 2011 年 1 月 8 日 一些帖子标题 2 标签自行车


汽车:

发表于 2011 年 5 月 8 日 一些帖子标题 5 标记汽车

Posted 29/7/2011 一些帖子标题 6 标记汽车


船:

发表于 2011 年 7 月 30 日 一些帖子标题 4 标记船


这可能吗?它应该是动态的,以便我可以从 WP 管理员创建新标签,它们会自动显示。

4

2 回答 2

2

使用 get_tags() 循环标记并使用带有 'tag_in' 参数的 get_posts。

IE。

                <?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 } ?>
于 2014-01-16T03:48:16.133 回答
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

于 2011-08-08T07:51:53.597 回答