Как группировать посты по тегу (WordPress) - PullRequest
1 голос
/ 08 августа 2011

Я хотел бы перечислить все сообщения на одной странице, но я бы хотел, чтобы сообщения были сгруппированы по тегам. Возможно ли это в Wordpress?

В основном так:


Bikes:

Опубликовано 8.08.2011 Некоторое название поста 1 Tag Bikes

Опубликовано 8.01.2011 Некоторое название поста 2 Tag Bikes


Автомобили:

Добавлено 05.08.2011 Некоторое название поста 5 Тег авто

Опубликовано 29.07.2011 Некоторое название поста 6 Тег авто


Boats:

Опубликовано 30.07.2011 Некоторое название поста 4 Тег лодки


Возможно ли это сделать? Он должен быть динамическим, чтобы я мог создавать новые теги из WP admin, и они будут отображаться автоматически.

Ответы [ 2 ]

2 голосов
/ 16 января 2014

Зацикливание тегов с помощью get_tags () и использование get_posts с аргументом tag_in.

т.е..

                <?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 } ?>
0 голосов
/ 08 августа 2011

Это зависит.Вы пытаетесь отобразить сообщения для всех тегов или просто выводите список всех сообщений по определенным тегам, по которым вы уже определились?

Если вы знаете теги, которые вы хотите отобразить, вот как вы будете выводить сообщения по тегам.

<?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

...