Статьи не выводятся на страницу категорий если с данной категорией меньше двух постов Wordpress

У меня есть несколько категорий которые я вывожу на страницу категорий. Но недавно я обнаружила проблему: она состоит в том что если статей, которые имеют одну категорию, меньше двух то они не выводятся на страницу категорий. Подскажите как сделать так что бы выводилось любое количество статей имеющую общую категорию в не зависимости она одна или их 20.

<?php get_header(); ?>
        </div>
    </header>
    <div class="wrap wrapBlogPage">
    <?php get_sidebar(); ?>
    <section class="bodyContent">
    <?php if ( have_posts() )the_post();?>
              <?php
                $category_description = category_description();
                if ( ! empty( $category_description ) )
                  echo '<div class="archive-meta">' . $category_description . '</div>';
                /* Run the loop for the category page to output the posts.
                * If you want to overload this in a child theme then include a file
                * called loop-category.php and that will be used instead.
                */
                get_template_part( 'loop', 'category' );
              ?>
              <?php if(function_exists('wp_paginate')) { wp_paginate();}?>
    <?php if ( have_posts() ) :while ( have_posts() ) :the_post(); $theAuthor = get_the_author();?>
<!--posts--->
<div class="anonseBlog">
  <div class="post-module">
          <!-- Post Content-->
        <div class="cat"><?php echo get_the_category_list( ' ' ); ?></div>
        <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>    
        <span class="dateName"><span class="name" title="<?php echo sprintf( esc_attr__( 'View all posts by %s', 'twentyten' ), $theAuthor ); ?>"><?php echo $theAuthor; ?> </span><div class="oval"></div><span class="date" title="<?php echo esc_attr( get_the_time() ); ?>" rel="bookmark"><?php echo get_the_date('j M Y'); ?></span></span>
    <!-- Thumbnail-->
    <div class="thumbnail">
    <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('full', 'class=anonseImg'); ?></a>
    </div>
        <a href="<?php the_permalink(); ?>" style="fonat-size: 18px; color:#333333; line-height: 28px;" class="text"><?php the_excerpt(); ?></a>
        <a href="<?php the_permalink(); ?>" class="read">Read more<img src="<?php bloginfo('template_url');?>/img/next.svg" class="readeMore"></a>
  </div>
  <div class="line"></div>
</div>
        <?php endwhile ; ?>        
        <div class="listItem">
<!--paginate-->
              <?php the_posts_pagination(
              $args = array(
                'show_all'     => false, 
                'end_size'     => 0,     
                'mid_size'     => 1, 
                'prev_next'    => true, 
                'prev_text'    => __('Newer'),
                'next_text'    => __('Older'),
                'add_args'     => false, 
                'add_fragment' => '',  
                'screen_reader_text' => __( 'Posts navigation' ),
                'type' => 'list',
            )
              );
              ?>   
            <div class="line"></div>
        </div>
        <?php else : ?>
        <?php endif ; ?>
    </section>
</div>
    <?php get_footer(); ?>

Ответы (1 шт):

Автор решения: alenkins

Ошибка у вас в лишнем вызове функции the_post() вот на этом участке кода:

<section class="bodyContent">
<?php if ( have_posts() )the_post();?>

Функция the_post() устанавливает индексы поста в цикле WP. И судя по вашему коду первый пост вы просто пропускаете, переходя к основному циклу (в рамках get_template_part( 'loop', 'category' );), где вызываете функцию повторно.

Уберите лишний вызов и всё заработает

→ Ссылка