Wordpress: последнее сообщение отсутствует в ленте категорий - PullRequest
1 голос
/ 17 января 2020

Я настроил настраиваемое поле для извлечения идентификатора указанной категории для отображения с помощью WP_Query на боковой панели страницы. Это тянет посты в правильной категории, но пропускает самый последний. Вот фрагмент кода:

<?php
    $catID = get_field ( 'category_id_posts' );
    $catquery = new WP_Query( 'cat='. $catID .'&posts_per_page=5' );
    ?>
    <?php if($catquery->have_posts()) : $catquery->the_post(); ?>
    <div id="recent-posts-2">       
        <h3 class="widget-title">Recent Posts</h3>
        <ul class="nav flex-column">
            <?php while($catquery->have_posts()) : $catquery->the_post(); ?>
            <li class="nav-item">
                <a class="nav-link" href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>
            </li>
            <?php endwhile; ?>
        </ul>
    </div>
    <?php
    endif;
    wp_reset_postdata(); ?>

Даже когда я упрощаю WP_Query и удаляю переменную следующим образом:

$catquery = new WP_Query( 'cat=7&posts_per_page=5' );

Она по-прежнему пропускает последнее сообщение в этой категории.

Любое понимание будет с благодарностью, спасибо!

Ответы [ 2 ]

2 голосов
/ 17 января 2020

вам нужно проверить, например, $ catquery-> have_posts () -

<?php if ( $catquery->have_posts() ) : ?>

<?php while ( $catquery->have_posts() ) : $catquery->the_post(); ?>
..
..
..
..
<?php endwhile; ?>
<?php endif;
  wp_reset_postdata(); 
?>
2 голосов
/ 17 января 2020

Вы не получаете первое сообщение, потому что пропускаете его.

Проверьте эту строку:

<?php if($catquery->have_posts()) : $catquery->the_post(); ?>

Вы проверите, есть ли в вашем запросе сообщение, если да, вы получите первый. Тем не менее, вы не печатаете это. Чем вы звоните ...

<?php while($catquery->have_posts()) : $catquery->the_post(); ?>

... снова. Это даст вам второй пост, и вы пропустили первый. Разбор первого напрямую или удаление первого извлечения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...