php - ACF:仅获取中继器字段的第一行
问题描述
我有一个名为“images”的转发器文件,在其中我有一个名为“image”的子文件。
我怎样才能只获得第一行的值?
这是我的代码
<?php if( have_rows('images') ): ?>
<?php
$active = 'active';
while ( have_rows('images') ) : the_row();
$image = get_sub_field('image');
if($image == "" ) continue;
?>
<img src="<?php echo get_template_directory_uri(); ?>/files/images/<?php the_sub_field('image'); ?>" class="img-fluid is-slider-item" />
<?php $active = '';
endwhile;
?>
<?php endif; ?>
我试过的
<?php if( have_rows('images') ): ?>
<?php
$active = 'active';
while ( have_rows('images') ) : the_row();
$image = get_sub_field('image');
if($image == "" ) continue;
?>
<img src="<?php echo get_template_directory_uri(); ?>/files/images/<?php the_sub_field('image'); ?>" class="img-fluid is-slider-item" />
<?php break;
<?php $active = '';
endwhile;
?>
<?php endif; ?>
提前谢谢了!
解决方案
你可以试试下面的代码
<?php if( have_rows('images') ): ?>
<?php
$active = 'active';
while ( have_rows('images') ) : the_row();
$image = get_sub_field('image');
if ($image !== '') {
?>
<img src="<?php echo esc_url(get_template_directory_uri(). '/files/images/'. $image); ?>" class="img-fluid is-slider-item" />
<?php $active = ''; ?>
<?php
}
break;
endwhile;
?>
<?php endif; ?>
“虽然”至少执行了 1 次,因此您可以将“中断”放在最后。
还需要使用函数esc_url进行转义 url
推荐阅读
- python - 无法从 tensorflow/keras 中的加载模型中获取梯度
- javascript - AngularJS loads only the component html instead of entire ng-view
- c++ - 在 C++ 中处理无效的用户输入
- r - 在 x 列下选择多行值 (a,b,c)
- javascript - Material Design Lite 菜单项在滚动时消失
- typescript - 您如何处理具有不再可为空的可为空类型的接口?
- java - 无法选择要在 ImageView 中显示的图像
- websocket - 如何连接这个 websocket 服务器
- c# - 如何在每个房间放置单独的摄像头以显示玩家的位置?
- python - 使用 asyncio/pyppeteer 时打开文件过多错误