我有一些自定义代码,以便以我想要的方式显示自定义字段。
不幸的是,使用此代码,我似乎无法访问$field[\'label\']
. 我尝试了各种方法,但不知道如何做到这一点。
<?php
$fields = get_fields();
if( $fields ): ?>
<ul>
<?php
foreach( $fields as $name => $value ):
if (stripos($name, \'isbn\') !== false) : ?>
<li><b><?php echo $name[\'label\']; ?></b> <?php echo $value; ?></li>
<?php endif;
endforeach; ?>
</ul>
<?php endif; ?>
最合适的回答,由SO网友:Sally CJ 整理而成
试试这个,这对我很有用:
<?php
$fields = get_field_objects(); // I changed from get_fields()
if( $fields ): ?>
<ul>
<?php
// I changed $value to $field (i.e. the variable name)
foreach( $fields as $name => $field ):
if (stripos($name, \'isbn\') !== false) : ?>
<li><b><?php echo $field[\'label\']; ?></b> <?php echo $field[\'value\']; ?></li>
<?php endif;
endforeach; ?>
</ul>
<?php endif; ?>
所以参考
$field
在代码中,
$field[\'label\']
是字段标签(例如“Book ISBN”),并且
$field[\'value\']
是字段值。但请注意,字段值可以是
array
, 这么简单
echo
-ing它(可能会抛出一个PHP警告)会给您一个“数组”。
看见https://www.advancedcustomfields.com/resources/get_field_objects/ 如果您需要帮助get_field_objects()
作用
PS:如果您只想获取单个字段的标签,而不是所有字段(当前/目标帖子/用户等)的标签,那么可以使用get_field_object()
相反