Wordpress:类别Feed中缺少的最新帖子

我已经设置了一个自定义字段来提取指定的类别ID,以便在页面侧栏上使用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' );

它仍然会跳过该类别中的最新帖子。


任何见解将不胜感激,谢谢!


函数式编程
浏览 80回答 2
2回答

慕码人8056858

您需要检查$catquery->have_posts()例如 -<?php if ( $catquery->have_posts() ) : ?><?php while ( $catquery->have_posts() ) : $catquery->the_post(); ?>........<?php endwhile; ?><?php endif;&nbsp; wp_reset_postdata();&nbsp;?>

倚天杖

您没有收到第一篇文章,因为您跳过了它。检查此行:<?php&nbsp;if($catquery->have_posts())&nbsp;:&nbsp;$catquery->the_post();&nbsp;?>您检查您的查询是否有帖子,如果是,您将获取第一个。但是,您没有打印该版本。比你在打电话...<?php&nbsp;while($catquery->have_posts())&nbsp;:&nbsp;$catquery->the_post();&nbsp;?>...再。这将为您提供第二个帖子,并且您跳过了第一个帖子。直接解析第一个或删除第一个提取。
打开App,查看更多内容
随时随地看视频慕课网APP