因此,我有一个块,它在我的分类法上循环并加载一个模板文件,以便在其中显示每个分类法:
<?php
$collections = get_terms( \'resource-collection\', array(
\'orderby\' => \'name\',
\'hide_empty\' => 0,
\'pad_counts\' => true,
) ); ?>
<?php if ( ! empty( $collections ) ) : ?>
<?php foreach ( $collections as $collection ) : ?>
<?php include locate_template( \'sections/collection-tile.php\' ); ?>
<?php endforeach; ?>
<?php endif ?>
该模板文件(collection tile.php)指的是每个分类法在前端的显示方式。
我想为循环中返回的每个分类法输出一个使用ACF构建的自定义字段。它是一个图像字段,设置为返回对象数组。下面是我在模板文件中所做的:
<?php $img = get_field(\'my_custom_field\'); ?>
<img src="<?php echo $img[\'url\'] ?>">
这本该成功的。但不知怎的,它出了问题,我得到:
<img src= (unknown)>
因此,似乎WP无法在循环中使用相应的查询项正确地寻址字段。
我做了一些研究,但无法找出问题所在。
任何帮助都将不胜感激。提前感谢!
最合适的回答,由SO网友:Diogo 整理而成
好了,问题解决了。事实上,这是一个非常基本的错误。
我所需要做的就是将查询的术语作为中的第二个参数传递给get_field();
. 我甚至在这里发表了一条评论,引用了ACF的一份文件,解释了。。。
原来我已经创建了分类法数组$collections
, 然后在中返回正确的术语<?php foreach ( $collections as $collection ) : ?>
.
我想做的就是$term = get_queried_object();
之后是get_field(\'my_custom_field\', $term)
在模板文件中。难怪它不起作用了。。。(我猜这是工作到深夜太长时间的副作用……你开始变傻了)。
所以,就在这里。仅此而已:
<?php $img = get_field(\'my_custom_field\', $collection); ?>
<img src="<?php echo $img[\'url\'] ?>">
砰!现在它显然起作用了。没有什么比新鲜的一天更让人心旷神怡的了。