Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

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

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.

share|improve this question
add comment

2 Answers

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();
    }
share|improve this answer
    
Ok, you suggest to create two queries. One for tag portrait and tag paysage. But what about the pagination. The only reason why I want to use only one query is the pagination. With two queries i'll get two paginations on my page. –  Steffi Jun 16 '12 at 8:54
add comment

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.