Search code examples
wordpresscustom-post-typeadvanced-custom-fields

Wordpress: not displaying all items in custom post type


Dear PHP / Wordpress / Dev Experts,

Ive build a plugin, with a custom post type and some advanced custom fields. The main goal is to list the members in my band, with pictures and name.

You can see it here: http://www.lucky13.nl/test/

I've managed to get everything working to my taste, however.. I have 5 bandmembers in my band which i've added, but i'm only seeing 4. Where is the 5th entry / post? I find that the first added bandmember is not displaying.

I assume this has to do with the loop, and the array not listing all items? But i'll leave this to the experts.. I would appreciate any comments of help!

My code:

<?php
    /*
    Plugin Name: VrolijkWebdesign - Bandmembers
    Description: For a bandwebsite to show bandmembers. 
    */
    /* Start Adding Functions Below this Line */
      

    /* NAME FUNCTION  */  
    function new_section_1(){
      
      $bandmembers = new WP_Query(array(
        'post_type' => 'bandmembers'
      ));
      
      while($bandmembers->have_posts()) : $bandmembers->the_post(); 

      if (has_post_thumbnail( $post->ID ) ):
        $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' ); ?>
    <!-- START HTML  -->

    <div class="span2">
    <figure class="snip1104">
      <img src="<?php echo $image[0] ;?>" alt='sample33'/>
      <figcaption>
        <h5> <?php the_field('firstname'); ?> <span> <?php the_field('lastname'); ?>
         </span></h5>
      </figcaption>
      <a href="#"></a>
    </figure>
    </div>
    <!-- END HTML -->
    <?php endif;
          endwhile;
    } 
     
    add_shortcode('band', 'new_section_1'); 
    ?>

Solution

  • $bandmembers = new WP_Query(array(
        'post_type' => 'bandmembers',
        'posts_per_page' => '5'
      ));
    

    Try setting the posts_per_page argument. Since the default might be set to '4' by other filters.

    If you want to get all posts in a single query use '-1' instead of '5'

    You could also try the below for debugging purposes only:

    -Try to set post_status to 'any' to make sure that post statuses are not a problem.

    -Try var_dump($bandmembers) after doing the query to see the fetched posts before the loop starts.