显示带有自定义元的图像数组 - 如何计算循环?
display an array of images with custom meta - how to count the loop?
我遇到了一个可能非常基本的问题,但我就是找不到解决方案。
这是我正在尝试做的事情:我在网站上有一个图片库,每个图片都可以使用自定义元字段设置为 "featured"。我想显示该图库中的前五张精选图片。所以我需要:从图库中获取图像数组,遍历该数组并制作一个仅包含 "featured" 图像的新图像数组,然后遍历该数组并仅显示前五个。
我可以成功获取数组并获取数组中的特色图片,但我知道我设置的计数器有误,因为输出计算的是图库中的所有图片,而不仅仅是标记为的图片特色。因此我只得到 3 张图片——因为前五张画廊图片,只有 3 张被标记为特色。我明白这么多,但我对如何调整这一点感到困惑。
代码如下:
<?php $images = get_field('image_gallery', 'option'); // get the array of gallery images
if( $images ): ?>
<?php
$i = 0;
foreach( $images as $image ):
$featured = get_field('feature_this_image', $image['id']); // get the images that are marked featured
if ($featured && $i <= 4 ) { ?>
<div class="gallery-image"><a href="<?php echo $image['url']; ?>"><img src="<?php echo $image['sizes']['gallery-thumb']; ?>" alt="<?php echo $image['alt']; ?>" /></a></div>
<?php } $i++; endforeach; ?>
<?php endif; ?>
如有任何帮助,我们将不胜感激。我显然还在学习 PHP 并且我不太清楚我是否需要另一个 foreach 循环或移动计数器或......?我不断移动计数器并创建第一张图像的循环,或五张图像的无限循环...
提前感谢您的阅读。
<?php
$images = get_field('image_gallery', 'option');
if( $images )
{
$i = 0;
foreach( $images as $image )
{
$featured = get_field('feature_this_image', $image['id']);
if ($featured && $i <= 4 )
{
echo "<div class='gallery-image'>";
echo "<a href=".$image['url'].">";
echo "<img src=".$image['sizes']['gallery-thumb']." alt=".$image['alt']."/>";
echo "</a>";
echo "</div>";
$i++;
}
}
?>
您只需将 $i 增量移动到 if 块内。我还对代码进行了一些重构,使其看起来更简洁。
我遇到了一个可能非常基本的问题,但我就是找不到解决方案。
这是我正在尝试做的事情:我在网站上有一个图片库,每个图片都可以使用自定义元字段设置为 "featured"。我想显示该图库中的前五张精选图片。所以我需要:从图库中获取图像数组,遍历该数组并制作一个仅包含 "featured" 图像的新图像数组,然后遍历该数组并仅显示前五个。
我可以成功获取数组并获取数组中的特色图片,但我知道我设置的计数器有误,因为输出计算的是图库中的所有图片,而不仅仅是标记为的图片特色。因此我只得到 3 张图片——因为前五张画廊图片,只有 3 张被标记为特色。我明白这么多,但我对如何调整这一点感到困惑。
代码如下:
<?php $images = get_field('image_gallery', 'option'); // get the array of gallery images
if( $images ): ?>
<?php
$i = 0;
foreach( $images as $image ):
$featured = get_field('feature_this_image', $image['id']); // get the images that are marked featured
if ($featured && $i <= 4 ) { ?>
<div class="gallery-image"><a href="<?php echo $image['url']; ?>"><img src="<?php echo $image['sizes']['gallery-thumb']; ?>" alt="<?php echo $image['alt']; ?>" /></a></div>
<?php } $i++; endforeach; ?>
<?php endif; ?>
如有任何帮助,我们将不胜感激。我显然还在学习 PHP 并且我不太清楚我是否需要另一个 foreach 循环或移动计数器或......?我不断移动计数器并创建第一张图像的循环,或五张图像的无限循环...
提前感谢您的阅读。
<?php
$images = get_field('image_gallery', 'option');
if( $images )
{
$i = 0;
foreach( $images as $image )
{
$featured = get_field('feature_this_image', $image['id']);
if ($featured && $i <= 4 )
{
echo "<div class='gallery-image'>";
echo "<a href=".$image['url'].">";
echo "<img src=".$image['sizes']['gallery-thumb']." alt=".$image['alt']."/>";
echo "</a>";
echo "</div>";
$i++;
}
}
?>
您只需将 $i 增量移动到 if 块内。我还对代码进行了一些重构,使其看起来更简洁。