在wordpress中,我有一个循环返回8个最新帖子。我想做的是,即使帖子数小于4,也必须始终有4个列表元素(如果没有帖子,则为empli li元素)。 例如,页面只有两个帖子,则循环需要生成2个度li。如果页面中有4个以上的帖子,则无需生成任何时间li。 请使用当前代码,它会产生超过4 li的内容。
<ul class="slider sp">
<?php
$ids = get_field('related', false, false);
$query_args = array(
'post_type' => 'product',
'posts_per_page' => 8,
'post__in' => $ids,
'orderby' => 'post__in',
);
$query = new WP_Query( $query_args );
$count = $query->post_count;
if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post();
$thumbnail = get_field('image0');
if(empty($thumbnail)){ $thumbnail = APP_URL . "images/cms/no-image.png"; $borderclass = "hasborder";}
?>
<li>
<a href="<?php echo get_permalink(); ?>">
<div class="imager">
<div class="img" style="background-image: url(<?php echo $thumbnail; ?>);"></div>
</div>
<p class="ttl">
<?php echo get_the_title(); ?>
</p>
<p class="price"><?php echo the_field('a-price'); ?>円(税別)</p>
</a>
</li>
<?php endwhile;
$count = 4 - $count;
if($count > 0){
for( $i = 0; $i <= $count; $i++){echo '<li></li>';}} endif; ?>
</ul>
答案 0 :(得分:1)
次要错误:for($ i = 0; $ i <= $ count; $ i ++)应该只是$i < $count
或
//$count = 4 - $count;
for( $i = $count; $i < 4; $i++)
两者都能正常工作