Статьи не выводятся на страницу категорий если с данной категорией меньше двух постов 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 шт):
Ошибка у вас в лишнем вызове функции the_post() вот на этом участке кода:
<section class="bodyContent">
<?php if ( have_posts() )the_post();?>
Функция the_post() устанавливает индексы поста в цикле WP. И судя по вашему коду первый пост вы просто пропускаете, переходя к основному циклу (в рамках get_template_part( 'loop', 'category' );), где вызываете функцию повторно.
Уберите лишний вызов и всё заработает