在回答您的问题时,它不起作用,因为get_sub_field
必须while
在与 一起使用的语句中使用has_sub_field()
,并且因为您$row['image']['url']
指的是图像对象(通过字段菜单上的返回值设置),而似乎您实际上是让该字段返回“附件 ID”。
如果要使用返回值设置为“附件 ID”的 foreach,则需要使用返回的对象/数组,如下所示:
<?php
$rows = get_field('images');
foreach($rows as $row){
$image = wp_get_attachment_image_src($row['image'], 'full');
echo '<img src="'. $image[0] . '" class="shadowed forced">';
}
?>
如果您想使用 foreach 方法,并将返回值设置为“图像对象”,它应该如下所示:
<?php
$rows = get_field('images');
foreach($rows as $row){
echo '<img src="'. $row['image']['url'] . '" class="shadowed forced">';
}?>
另一种解决方案,您的答案/建议的工作是将字段返回值设置为“图像 URL”,然后您可以像这样简单地调用图像:
<?php $rows = get_field('images');
if ($rows)
{
while (has_sub_field('images'))
{
$image = get_sub_field('image');
echo '<img src="'. $image . '" class="shadowed forced">';
}
} ?>
或者,如果您想显示不同大小的图像,也可以将“返回值”设置为“图像对象”,并执行以下操作:
<?php $rows = get_field('images');
if ($rows)
{
while (has_sub_field('images'))
{
$image = get_sub_field('image');
echo '<img src="'. $image['sizes']['large'] . '" class="shadowed forced">';
}
} ?>