Wordpress: не отображаются все элементы в настраиваемом типе сообщения

Уважаемые эксперты по PHP / Wordpress / Dev!

Я создал плагин с настраиваемым типом сообщения и некоторыми расширенными настраиваемыми полями. Основная цель - составить список участников моей группы с фотографиями и именами.

Вы можете увидеть это здесь: http://www.lucky13.nl/test/.

Однако мне удалось заставить все работать на свой вкус ... В моей группе 5 участников, которых я добавил, но я вижу только 4. Где пятая запись / пост? Я обнаружил, что первый добавленный участник группы не отображается.

Я предполагаю, что это связано с циклом, а в массиве не перечислены все элементы? Но я оставлю это экспертам .. Буду признателен за любые комментарии о помощи!

Мой код:

<?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'); 
    ?>

person Joe Vrolijk    schedule 17.03.2018    source источник
comment
вам следует добавить 'status' => 'publish', иначе будут отображаться сообщения в черновике и 'post_per_page' => -1   -  person Mark    schedule 18.03.2018
comment
Спасибо миллионному Марку, это решило мою проблему!   -  person Joe Vrolijk    schedule 18.03.2018


Ответы (1)


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

Попробуйте установить аргумент posts_per_page. Поскольку по умолчанию другие фильтры могут установить значение «4».

Если вы хотите получить все сообщения в одном запросе, используйте «-1» вместо «5».

Вы также можете попробовать следующее только в целях отладки:

-Попробуйте установить post_status на 'любой', чтобы убедиться, что статусы сообщений не являются проблемой.

-Попробуйте var_dump($bandmembers) после выполнения запроса просмотреть выбранные сообщения до начала цикла.

person Omar Tanti    schedule 17.03.2018
comment
по умолчанию такое же, как и в серверной части WordPress, по умолчанию 10 - person Mark; 18.03.2018
comment
Я бы все равно попробовал убедиться, что никакой другой фильтр не отменяет ваше значение по умолчанию. Вы также можете попробовать установить post_status на any, чтобы убедиться, что статусы сообщений не являются проблемой. Еще вы можете сделать var_dump($bandmembers) после выполнения запроса, чтобы просмотреть выбранные сообщения до начала цикла. - person Omar Tanti; 18.03.2018
comment
По-прежнему получаете только 4 сообщения? Сколько сообщений было возвращено согласно var_dump? - person Omar Tanti; 18.03.2018
comment
Огромное спасибо Омару, это решило мою проблему! 'posts_per_page' = ›'-1' все разобрал. Похоже, он действительно был перезаписан чем-то другим. Не совсем уверен, но я рад, что это решило проблему. Мне потребовался целый день, чтобы понять это! Еще раз спасибо!! - person Joe Vrolijk; 18.03.2018