How to order posts tag by tag?

I want to order my posts by tags with only one WP_Query()

In my WP_Query I would like to display
2 posts with tags portrait

Read More

2 posts with tags paysage

2 posts with tags portrait

2 posts with tags paysage

2 posts with tags portrait

2 posts with tags paysage

Etc…

And I need to order these posts by recents.

What is the query to do that ?

Thanks

PS : Sorry I cannot use code because I’m with my iPhone.

Related posts

Leave a Reply

2 comments

  1. Like Eugene mentioned in his answer you need to run a query for each tag. I would create a foreach loop that went through each tag then queried the latest 2 posts from each.

    $tags = get_tags();
    foreach ( $tags as $tag ) {
    
        echo '<h3>' .$tag->name. '</h3>';
        $tag_query = new WP_Query( array( 
                                  'tag_id' => $tag->term_id,
                                  'posts_per_page' => 2,
                                  'no_found_rows' => true,
                                   ) );
            while ( $tag_query->have_posts() ) : $tag_query->the_post();
            // Do stuff
            endwhile; wp_reset_postdata();
        }
    
  2. It’s impossible to do with one query, even from database point of view (without unions).

    I would recommend you to use separate queries for each term. Don’t invent a wheal, don’t over complicate your code.