PHP:如果值为空,则不要渲染行



我有一个滑块(Bootstrap 4),渲染一些通过FTP上传到服务器上的图像。

我使用下面的代码在前端渲染这些图像。

<img src="<?php echo get_template_directory_uri(); ?>/files/images/<?php the_sub_field('image'); ?>" class="img-fluid is-slider-item" />

这是有效的,但问题是,在前端也呈现空字段,显示空元素。

这是如何"空"幻灯片现在以HTML格式呈现。

<img src="http://mywebsite.local/wp-content/themes/new/files/images/" class="img-fluid is-slider-item">

图像在HTML

中呈现如下
<img src="http://mywebsite.local/wp-content/themes/new/files/images/2345672.png" class="img-fluid is-slider-item">

如何防止在前端呈现空幻灯片?

这里是整个代码

<?php if( have_rows('files') ): ?>
<div class="carousel_bg">
<div class="container">
<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
<!-- Indicators -->
<ol class="carousel-indicators">
<?php
$active = 'active';
$num = 0;
while ( have_rows('files') ) : the_row();
?>
<li data-target="#carousel-example-generic" data-slide-to="<?php echo $num ?>" class="<?php echo $active ?>"></li>
<?php
$active = '';
$num += 1;
endwhile; ?>
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner" role="listbox">
<?php
$active = 'active';
while ( have_rows('files') ) : the_row();
?>
<div class="carousel-item <?php echo $active ?> screen08">
<div class="container">
<img src="<?php echo get_template_directory_uri(); ?>/files/images/<?php the_sub_field('image'); ?>" class="img-fluid is-slider-item" />
</div>
</div><!-- /item -->
<?php $active = '';
endwhile;
?>
</div>
</div>
</div>
</div><!-- /row -->
<?php endif; ?>

我尝试的是将<?php if( have_rows('files') ): ?>移动到<div class="carousel_bg">中,但它不起作用

提示吗?

多谢!

我们需要的图片在sub_field ('image')中,我们需要检查在循环的顶部是否有图片。如果没有,请跳过此步。

试试这个代码

<?php if( have_rows('files') ): ?>
<div class="carousel_bg">
<div class="container">
<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
<!-- Indicators -->
<ol class="carousel-indicators">
<?php
$active = 'active';
$num = 0;
while ( have_rows('files') ) : the_row();
$image = get_sub_field('image');
if($image == "" ) continue;
?>
<li data-target="#carousel-example-generic" data-slide-to="<?php echo $num ?>" class="<?php echo $active ?>"></li>
<?php
$active = '';
$num += 1;
endwhile; ?>
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner" role="listbox">
<?php
$active = 'active';
while ( have_rows('files') ) : the_row();
$image = get_sub_field('image');
if($image == "" ) continue;
?>
<div class="carousel-item <?php echo $active ?> screen08">
<div class="container">
<img src="<?php echo get_template_directory_uri(); ?>/files/images/<?php the_sub_field('image'); ?>" class="img-fluid is-slider-item" />
</div>
</div><!-- /item -->
<?php $active = '';
endwhile;
?>
</div>
</div>
</div>
</div><!-- /row -->
<?php endif; ?>

最新更新