眼眸繁星
我看到您的代码有一些问题。首先在你的第一个如果if ( $the_query->have_posts() )$the_query 仍未定义,因此它没有帖子,您将 $the_query 下面的几行代码定义为 WP_Query 类的实例。其次,您wp_reset_postdata()有条件地调用,这意味着如果查询没有帖子发布数据将不会被重置。当然,您查询数据库的次数太多了,我不明白您为什么需要它。我做了一些快速更正(注意下面的代码未经测试,我只是应用了我能想到的快速解决方案)<?php$the_query = new WP_Query( array( 'category_name' => 'Travel', 'posts_per_page' => 64, ));?><div class="row row__padding--bottom"> <?php if ( $the_query->have_posts() ) : $i = 0; $class_map = [ 0 => 'col-md-6', 1 => 'col-md-6', 6 => 'col-md-6', 7 => 'col-md-6', 2 => 'col-md-4', 3 => 'col-md-4', 4 => 'col-md-4', 5 => 'col-md-12', ]; while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <div class="col-sm-12 <?php echo esc_attr( $class_map[ $i % 8 ] ); ?>"> <div class="journal__featured" style="background: url(<?php the_post_thumbnail_url( 'large' ); ?>) !important; !important; background-size: cover !important; background-position: center center !important; background-repeat: no-repeat !important;"> </div> <div class="post__info--container"> <a href="<?php the_permalink(); ?>"><h4><?php the_title(); ?></h4></a> </div> </div> <?php if ( 1 === ($i % 8) || 4 === ($i % 8) || 5 === ($i % 8) ) { echo '</div><div class="row row__padding--bottom">'; } $i++; endwhile; else : echo '<p>' . esc_html( __( 'No News' ) ) . '</p>'; endif; wp_reset_postdata(); ?></div><?php希望这对你有用!