2020-06-28 / 1502阅 / 悠然
返回Have_rows()循环中特定子字段的设置。
每个字段包含许多设置,例如标签,名称和类型。此功能可用于将这些设置与字段值一起作为数组加载。
get_sub_field_object($selector, [$post_id = false], [$format_value = true], [$load_value = true]);
$selector
(字符串) (必填) 字段名称或字段键。$format_value
(布尔) (可选) 是否应用格式化逻辑。默认为true。$load_value
(布尔) (可选) 是否加载字段的值。默认为true。(数组)此函数将返回一个类似于以下内容的数组。请注意,每个字段都包含唯一的设置。
array(
'ID' => 0,
'key' => '',
'label' => '',
'name' => '',
'prefix' => '',
'type' => 'text',
'value' => null,
'menu_order' => 0,
'instructions' => '',
'required' => 0,
'id' => '',
'class' => '',
'conditional_logic' => 0,
'parent' => 0,
'wrapper' => array(
'width' => '',
'class' => '',
'id' => ''
)
);
此函数的工作方式与相似get_sub_field()
,这意味着必须在have_rows()
循环中使用它。本示例说明如何使用子字段的值突出显示所选字段,从而列出该子字段的选择。
<?php if( have_rows('repeater') ): ?>
<?php while( have_rows('repeater') ): the_row(); ?>
<?php
// Get the sub field called "select".
$select = get_sub_field_object('select');
// Get its value.
$value = $select['value'];
// Loop over its choices.
?>
<ul>
<?php foreach( $select['choices'] as $k => $v ): ?>
<li <?php echo ($k === $value) ? 'class="selected"' : ''; ?>>
<?php echo $v; ?>
</li>
<?php endforeach; ?>
</ul>
<?php endwhile; ?>
<?php endif; ?>