个性化阅读
专注于IT技术分析

中继器字段中的ACF多种图像尺寸

我想使用转发器字段将内容块和图像显示为列表。但是, 我不想对所有图像都使用一种裁切尺寸。

例如:

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>

参考文献

  1. add_image_size
  2. 发表缩图
  3. ACF图像场

注意:我尚未测试此代码, 所以如果你有任何麻烦, 请告诉我!

赞(0)
未经允许不得转载:srcmini » 中继器字段中的ACF多种图像尺寸

评论 抢沙发

评论前必须登录!