0

在我在https://github.com/timber/timber/上提出问题之前在这里发布

我想显示具有自定义大小的 ACF 图像,例如:

<img src="{{ image.sizes.medium }}" width="{{ image.sizes.medium-width }}" height="{{ image.sizes.medium-height }}" alt="{{ image.alt }}" title="{{ image.title }}"> 

这是image数组

Array
(
    [id] => 473
    ...
    [width] => 768
    [height] => 400
    [sizes] => Array
    (
        [thumbnail] => http://assets.url.com/uploads/image-150x150.jpg
        [thumbnail-width] => 150
        [thumbnail-height] => 150
        [medium] => http://assets.url.com/uploads/image-300x300.jpg
        [medium-width] => 300
        [medium-height] => 300
        [medium_large] => http://assets.url.com/uploads/image-768x400.jpg
        [medium_large-width] => 768
        [medium_large-height] => 400
    ...
    )
)

但当然,破折号会破坏事情,所以我不能。有没有更正确的方法来做到这一点,或者我应该把它作为一个问题发布在 github 上?或者这可能是 ACF 问题?任何可以为我指明正确方向的帮助表示赞赏。

4

1 回答 1

2

当您在 Twig 中有一个数组时,使用点表示法只是访问其内容的一种方法。您还可以通过所谓的下标表示法访问内容,其工作方式与在 PHP 中执行此操作时相同:

<img src="{{ image.sizes.medium }}"
    width="{{ image.sizes['medium-width'] }}"
    height="{{ image.sizes['medium-height'] }}"
    alt="{{ image.alt }}" title="{{ image.title }}">

这仅适用于数组。如果对象的属性名称中有破折号,则必须使用attribute(). 以下是 Twig 文档中的示例:

{{ attribute(foo, 'data-foo') }}
于 2017-08-10T06:32:16.037 回答