ACF在中继器领域中的多个图像大小

时间:2017-11-15 11:58:38

标签: php wordpress wordpress-theming advanced-custom-fields

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

例如:

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 个答案:

答案 0 :(得分:0)

如果您希望能够为每个转发器元素分配特定的图像大小,为什么不在转发器中添加另一个ACF子字段并选择图像大小?

你新的&#34;图像尺寸&#34; (image_size)选择子字段选择可以是这样的:

thumbnail : Thumbnail
medium : Medium
medium_large : Medium Large
large : Large
full : Full Size

如果您愿意,可以替换自己的自定义图片尺寸,只要每个选择项的值与自定义图片尺寸$name值(see codex for reference)相对应。

然后在你的循环中:

<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. Post Thumbnails
  3. ACF Image Field
  4. 注意: 我还没有测试过这段代码,请告诉我你是否有任何问题!