我正试图让这件事起作用,但不知道问题出在哪里。我添加了else语句,但它不起作用。我能够用jQuery完成这项工作,但我需要它在PHP中工作,因为我需要用不同的语言显示这条消息。谁能帮帮我吗?
以下是我现在掌握的代码:
<?php
$args = array( \'post_type\' => \'custom_jobs\', \'posts_per_page\' => 30, \'order\' => \'ASC\' );
$loop = new WP_Query( $args );
if( $loop ):
while ( $loop->have_posts() ) : $loop->the_post();
?>
<div class="accordion-container" id="accordion-container">
<div class="accordion" id="accordionJobs<?php the_ID(); ?>">
<div class="card">
<div class="card-header" id="heading<?php the_ID(); ?>">
<h2 class="mb-0">
<button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapse<?php the_ID(); ?>" aria-expanded="false" aria-controls="collapse<?php the_ID(); ?>">
<h5><?php the_title(); ?></h5>
<i class="fas fa-chevron-right"></i>
</button>
</h2>
</div>
<div id="collapse<?php the_ID(); ?>" class="collapse" aria-labelledby="heading<?php the_ID(); ?>" data-parent="#accordionJobs<?php the_ID(); ?>">
<div class="card-body"><?php the_content(); ?></div>
</div>
</div>
</div>
</div>
<?php endwhile; ?>
<?php else : ?>
<h1>There are no posts!</h1>
<?php endif; ?>
</div>
</div>
最合适的回答,由SO网友:Jacob Peattie 整理而成
因为你只是在检查if ( $loop ) {
.
$loop
不是空的,是满的WP_Query
对象中包含有关查询的所有信息,即使没有返回帖子。检查查询是否实际返回了需要使用的帖子$loop->have_posts();
:
$loop = new WP_Query( $args );
if ( $loop->have_posts() ):
while ( $loop->have_posts() ) : $loop->the_post();
endwhile;
else:
endif;