作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
就像标题一样,我正在尝试从附加到分类的自定义字段中获取图像。我目前有一个称为城市的分类法,该术语类似于新墨西哥州的阿尔伯克基。我用 ACF 创建了一个图像自定义字段('city_hero_image'),并选择了 ID 作为返回值。查看源代码,在 src 标记中它显示“未知”,并且在执行 print_r 时它基本上返回一个空对象数组。
我的分类-city.php 是
$context['posts'] = Timber::get_posts();
$context['categories'] = Timber::get_terms('city');
$cover_image_id = get_field('city_hero_image');
$context['cover_image'] = new TimberImage($cover_image_id);
Timber::render( $templates, $context );
<img src="{{cover_image.get_url}}" class="img-responsive" alt="">
最佳答案
默认 WordPress 中的 get_field
当你运行 get_field
,该函数将尝试猜测它应该从上下文中查找自定义字段的对象。上下文通常是循环。
所以,如果你运行 $cover_image_id = get_field( 'city_hero_image' );
, ACF 将尝试获取自定义字段 city_hero_image
从当前帖子的 ID,它无法找到。也没有city_hero_image
在帖子上定义,它是根据您的术语定义的。
get_field
在循环内部,它将使用当前帖子的 ID 来加载一个字段。但是,使用 Timber,您永远不会进入 The Loop。木材实际上是用来摆脱循环的。 city_hero_image
),您需要明确告诉 get_field
使用 get_field( 'city_hero_image', 'city_termid' )
查看该分类,而 termid 将是您想要数据的术语的 ID。 get_field
工作有点不同。 Timber 将使用自定义字段作为属性填充帖子或术语对象。
city_hero_image
在您的分类中,您可以通过多种方式访问它:
$category->city_hero_image
get_field
Timber\Term 对象的方法:$category->get_field('city_hero_image)
{{ category.city_hero_image }}
gef_field
方法:{{ category.get_field('city_hero_image') }}
get_field
当您想要访问字段类型为 Repeater 或 Flexible Content 的数据时显式访问。
get_queried_object()
,这将根据访问的文件返回一个对象:
WP_Term
目的。 WP_Post_Type
目的。 WP_User
目的。 taxonomy-city.php
),所以它会是
$term = new \Timber\Term( get_queried_object() );
$cover_image = $term->city_hero_image;
$context['term'] = $term;
$context['cover_image'] = new \Timber\Image($cover_image);
关于Timber Twig 和 ACF 从分类页面上的自定义字段获取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42725959/
我是一名优秀的程序员,十分优秀!