【发布时间】:2018-04-30 08:45:16
【问题描述】:
我通过高级自定义字段将 10 张图片添加到帖子中,它们的名称从 1 到 10,例如“image_*”,ACF 设置为返回 ID。
我正在尝试获取循环中每个图像的全尺寸图像 URL 并将其用作 href 属性以打开图像的全尺寸弹出窗口,但是我不明白 wp_get_attachment_image_src 的工作原理。
由于我无法使用高级自定义字段的中继器,这是我用来获取自定义图像大小为scaled 的图像数组的循环,它可以很好地生成我的响应式图像标记需要:
// args
$sizeHuge = 'scaled'; // scaled image
$images = array(); // img array
for($x = 1; $x <= 10; $x++) {
$img = get_field('image_' . $x);
if($img) {
$images[] = $img;
} else {
break;
}
}
<?php foreach($images as $image) { ?>
<a href="" class="open-viewer">
<?php echo wp_get_attachment_image( $image, $sizeHuge ); ?>
</a>
<?php } ?>
我需要使用图像的 URL 设置父 a 元素的 href 属性。这是我用 wp_get_attachment_image_src 尝试过的,它不起作用,它将每个 href 设置为 image_10 的 URL。
// args
$sizeFull = 'full'; // full size image
$sizeHuge = 'scaled'; // scaled image
$images = array(); // img array
for($x = 1; $x <= 10; $x++) {
$img = get_field('image_' . $x);
$image_array = wp_get_attachment_image_src($img, $sizeFull);
$link = $image_array[0];
if($img) {
$images[] = $img;
} else {
break;
}
}
<?php foreach($images as $image) { ?>
<a href="<?php echo $link; ?>" class="open-viewer">
<?php echo wp_get_attachment_image( $image, $sizeHuge ); ?>
</a>
<?php } ?>
我的问题是:如何将a.open-viewer 的href 设置为正确的URL?其次,为什么我的代码会失败? (调试已开启,但未出现错误)。
我意识到我在这里严重误解了一些东西,我是 PHP 新手,所以对于我的方法的任何建议将不胜感激。
【问题讨论】:
-
您是在转发器字段中添加图像还是创建了 10 个具有不同 id 的不同字段?
-
@Balwant 不,我无法使用中继器扩展,所以我创建了十张具有不同 ID 的图像。
标签: wordpress foreach advanced-custom-fields