<?php if(have_rows('image_slideshow')): ?>
包裹的代码仍在输出,尽管没有行,即image
或centered_text
字段中没有数据。如何构造这个if语句,以便只在图像和居中字段中的一个或两个都有数据时输出代码?
<?php if(have_rows('image_slideshow')): ?>
<div class="section-intro">
<div class="slides owl-carousel">
<?php while( have_rows('image_slideshow') ): the_row();
$image = get_sub_field('image');
$content = get_sub_field('centered_text');
?>
<div class="slide intro"
<?php if(!empty($image)): ?>
style="background-image: url('<?php echo $image['url']; ?>')"
<?php endif; ?>
>
<?php echo $content; ?>
</div>
<?php endwhile; ?>
</div>
</div>
<?php endif; ?>
答案 0 :(得分:0)
什么是&#39; image_slideshow&#39; ??它不是变量。这只是一个字符串。你怎么能把它放到一个明显的函数have_rows()...来验证它有行的字符串?它简单而且永远是真实的。
应该是:
<?php if(have_rows($variable_that_contains_the_rows)):?>
或者这种更直接的方式:
<?php if(count((array) $variable_that_contains_the_rows)): ?>
我会在一段时间后添加:
<?php if(count((array) have_rows('image_slideshow'))): ?>