如何解决如何在 WordPress 和 Timber 中输出附加到类别的 ACF 元字段
我已为核心帖子类别分配了一个图像字段,并将其输出设置为图像 ID。我已将图像上传到每个类别,并在我的模板中设置了以下 PHP 和 Timber/Twig 代码以输出类别内容。核心 wordpress 类别字段(如名称、slug 和描述)都可以正常工作,但 ACF 字段不输出。我尝试了多种输出字段的方法,但似乎没有任何效果。
Timber 文档涵盖帖子 (<img src="{{ Image(post.Meta('hero_image')).src }}" />
) 的图像和其他字段,但几乎没有涵盖类别和术语 ({{ category.Meta('category_image') }}
)。后一个例子不起作用。
我尝试转储 {{ dump(category) }}
,但没有输出与 ACF 字段相关的任何内容。
关于我遗漏的任何建议。
非常感谢任何帮助。
干杯
$context = Timber::context();
$terms = get_terms([
'taxonomy' => 'category','parent' => '7','orderby' => 'name','order' => 'ASC',]);
$category = new \Timber\Term(get_queried_object());
// Get category_image field from category
// Only works on single category pages
$category_image = get_field( 'category_image',$category );
// Tried this,but still nothing
// Would I need to loop through $terms first?
$category_image = get_field( 'category_image',$terms );
if( $category->parent == 0 ) {
$templates = array( 'category.twig' );
$context['categories'] = $terms;
}
Timber::render( $templates,$context );
木材/树枝
{% for category in categories %}
<div class="category">
<a href="{{ site.link }}/category/stories/{{ category.slug }}">
<figure>
<figcaption>
{{ category.name }}
</figcaption>
<!-- Does not work -->
{{ category.Meta('category_image') }}
</figure>
</a>
</div>
{% endfor %}
解决方法
如果您希望您的条款与您过去处理 Timber 帖子的方式类似,您需要确保您使用 Timber 提供的功能来获取所有 Timber 功能,而不是核心 WordPress 功能。
>此外,如果您尝试获取多个类别的图像,您的代码段将不起作用,因为 ACF 的 get_field()
函数不接受 ID/对象数组。这与 Timber 没有直接关系,而是与 ACF 的工作原理有关。
(这不起作用)
// Tried this,but still nothing
// Would I need to loop through $terms first?
$category_image = get_field( 'category_image',$terms );
所以代替
$terms = get_terms( [
'taxonomy' => 'category','parent' => '7','orderby' => 'name','order' => 'ASC',] );
你应该使用
$terms = Timber::get_terms( [
'taxonomy' => 'category',] );
这样,您将获得 Timber\Term
对象而不是 WP_Term
对象,就像执行 $category = new \Timber\Term( get_queried_object() );
时一样。只有这样你才能使用category.meta()
。
更新 PHP 代码后,您的 Twig 文件应该可以正常工作。您不必遍历 PHP 中的类别来获取所有图像。您可以从
更新 Twig 中类别图像的代码<!-- Does not work -->
{{ category.meta('category_image') }}
到
<img src="{{ Image(category.meta('category_image')).src }}" />
小建议 – 确保在 ACF 的 category_image
字段组配置中仅返回图像 ID。这样,ACF 就不必先获取图像信息,可以节省一些性能。
也许你甚至可以替换
<a href="{{ site.link }}/category/stories/{{ category.slug }}">
与
<a href="{{ category.link }}">
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。