我想使用转发器字段将内容块和图像显示为列表。但是, 我不想对所有图像都使用一种裁切尺寸。
例如:
List item 1: Image size 1
List item 2: Image size 2
List item 3: Image size 2
List item 4: Image size 3
这有可能吗?
我当前使用的标记是:
<ul>
<?php while( have_rows('home-features') ): the_row();
// vars
$image = get_sub_field('image');
$description = get_sub_field('description');
$url = get_sub_field('url');
?>
<li>
<a href="<?php echo $url; ?>">
<div>
<h3><?php echo $description; ?></h3>
</div>
</a>
</li>
<?php endwhile; ?>
</ul>
#1
如果你希望能够为每个转发器元素分配特定的图像大小, 为什么不只是在转发器中添加另一个ACF子字段并选择图像大小呢?
你新的”图像大小”(image_size)选择子字段”选择”可能如下所示:
thumbnail : Thumbnail
medium : Medium
medium_large : Medium Large
large : Large
full : Full Size
如果需要, 你可以替换自己的自定义图像尺寸, 只要每个选择项的值都与自定义图像尺寸$ name值相对应(请参阅编解码器以供参考)。
然后在你的循环中:
<ul>
<?php while( have_rows('home-features') ): the_row();
// make sure the ACF return format is set to 'image array' on the image field
$image = get_sub_field('image');
// new select field described above
$size = get_sub_field('image_size');
// put the two together using the image array values
$img_url = $image['sizes'][ $size ];
$description = get_sub_field('description');
$url = get_sub_field('url');
?>
<li>
<a href="<?php echo $url; ?>">
<div>
<img src="<?php echo $img_url; ?>">
<h3><?php echo $description; ?></h3>
</div>
</a>
</li>
<?php endwhile; ?>
</ul>
参考文献
- add_image_size
- 发表缩图
- ACF图像场
注意:我尚未测试此代码, 所以如果你有任何麻烦, 请告诉我!
评论前必须登录!
注册