ACF中继器-如果子字段在任何行中都有值:做一些事情



我找到了一个解决问题的方法,但这是一个"hack"。我正在学习PHP,我想知道我应该如何继续。

我有一个重复器,在这个重复器中有一个true/false来激活每一行的选项。我想显示一个"选项标题"只有当任何一行的true/false为true时。因此,我做了如下操作:

<?php $rows = get_field('mytable');
if( $rows ) { 
$optionsonoff = $row['displayoptions']; /* my true/false button */
if ( $optionsonoff ) { ?>
<tr><td>OPTIONS</td></tr>
<?php }} ?>

这几乎可以工作。几乎,因为不知何故它没有考虑到第一行,所以如果第一行的真/假为真,其他所有行为假,它将无法工作。

因此,我添加了第二个变量来专门获取第一行中的true false的值,并将其添加到IF语句中:

$optionsonoff = $row['displayoptions'];
$optionsonofffirstrow = $rows[0]['displayoptions'];
if ( $optionsonoff OR $optionsonofffirstrow ) { ... } ?>

这是可行的,但我想了解:

  • 为什么第一行没有计算在我的第一个变量(也许是特定于ACF的东西?)
  • 最重要的是,我想学习正确/最简单的方法来实现我想要的?当(行)或if(have_rows)的东西?

谢谢你!

我不确定我是否理解,但如果您必须循环命令是_repeater_field。

https://www.advancedcustomfields.com/resources/the_repeater_field/

这是你需要的吗?

最新更新