0

I want to loop through 3 custom post types + posts and display the latest post from each.

This is what I have so far. This only takes the four most recent posts but not one only from each post type. Many thanks in advance

<?php $args = array(
      'post_type' =>.  array('post','mixes','artists','releases'),
      'posts_per_page' => '4',
        );

query_posts( $args );
while ( have_posts() ) : the_post(); ?>

  do stuff here         

<?php   endwhile; ?> 
  • Welcome to WPSE. Just a point of note here, when adding code do a question/asnwer, keep the following in mind, when you have added code to the editor, highlight that code, and just above the editor is a {} sign, click on that sign. This will add your code in a codeblock, as you can see in my edit. BTW, don't use query_posts – Pieter Goosen May 28 '14 at 9:19
  • Read this on why you shouldn't use query_posts: wordpress.stackexchange.com/a/1755/47733 – kraftner May 28 '14 at 10:58
0

That way won't work as you have found out it will grab just the 4 posts from the loop.

To do this you need to do a search of each post type, something like below will work:

$terms = array('post', 'mixes', 'artists', 'releases');
  if ( !empty( $terms ) && !is_wp_error( $terms ) ){
   foreach ( $terms as $term ) {
    $my_query = new WP_Query('posts_per_page=1&post_type='.$term);
    while ($my_query->have_posts()) : $my_query->the_post();
     echo '<h2>'.$term.'</h2>';
     echo '<ul>';
      echo '<li>'.get_the_title().'</li>';
     echo '</ul>';
    endwhile; wp_reset_query();
   }
  }

That should do the following:

Post Type 1 - post title

Post Type 2 - post title

Post Type 3 - post title

Post Type 4 - post title

| improve this answer | |
  • Hey Gareth, thanks so much! You code works perfectly. One quick question: Is there a way to add a custom page to this loop? Eg take 'mixes' out and put mixes_page.php in? Once again thanks again! – Rico Shaft May 28 '14 at 12:49
  • What does mixes_page.php do, the loop needs to reference the data so your best to sticking with grabbing the data from the post types. As my amswer solved your question, can you accept it as the answer (on arrows to left, there will be a tick below). – Gareth Gillman May 28 '14 at 12:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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