Handling repeater data

时间:2017-08-09 作者:Nappstir

我当前正在尝试使用创建下拉功能repeater 自定义字段输入。这可能是也可能不是要使用的正确自定义字段,但似乎提供了其他选项。因此,这就是我的自定义字段在管理面板上的外观:

Repeater Custom Field

我想做的事情很简单。我正在尝试显示此列表的前三个选项。然后我想添加一个SEE MORE 用户可以单击的按钮,它将显示所有后续updates. 示例:

enter image description here

我正在使用bootstrap 用于处理accordion feature. 我遇到的问题是适当地拆分数据。正在将前三行放入页面上显示的容器中。。。剩下的都进了bootstrap accordion 容器我的想法是通过创建两个数组来实现这一点。将前三行切片到第一个数组中,然后从第四行切片到第二个数组中。我遇到的唯一问题是处理从后端传入的数据。这很让人困惑,我可能用了一种错误的方式。

我注意到的第一件事是,当使用get_row() 作用不是单独封装在数组中的数组:它是如何进来的:[][][][][][][][][][][][][][]、[]、[]、[]、[]这显然意味着我无法将这些数组作为一个组来执行php数组功能,因为它们不在一个数组中。所以我决定把它们排成一个阵列array_push($new_array, $rows). 当我接收到以下输出时,这种情况就会发生:

Array ( 
[0] => Array (
    [field_598a36a3cea71] => July 5, 2017
    [field_598a36bdcea72] => ONE
    )
[1] => July 5, 2017
[2] => ONE
[3] => Array (
    [field_598a36a3cea71] => July 6, 2017
    [field_598a36bdcea72] => TWO
    )
[4] => July 6, 2017
[5] => TWO
[6] => Array (
    [field_598a36a3cea71] => July 7, 2017
    [field_598a36bdcea72] => THREE
    )
[7] => July 7, 2017
[8] => THREE
[9] => Array (
    [field_598a36a3cea71] => July 8, 2017
    [field_598a36bdcea72] => FOUR
    )
[10] => July 8, 2017
[11] => FOUR )
如你所见,每三分之get_row()三 是一个完整的数组,但它也返回存在的每个值。。。所以如果我这样做了print_r(count($new_array)) 在我的$new_array. 每行耦合四个,接下来的八个是我行中的每个项目。下面是我现在正在使用的代码:

<?php if(have_rows(\'updates_list\')): ?>
  <?php $new_array = array() ?>
    <?php while(have_rows(\'updates_list\')): the_row(); ?>
      <?php $rows = get_row(); ?>
      <?php array_push($new_array, $rows) ?>
    <?php endwhile; ?>
  <?php print_r($new_array) ?>
<?php endif; ?>
坦白地说,因为我是一个新手,我不知道我是否走上了正确的道路,使用正确的自定义字段,编写语法正确的php。。。因此,任何关于如何实现这一目标的想法、帮助和建议,我都将不胜感激。我将暂时关注发布的任何问题和评论,因此希望我能相对快速地做出回应。提前感谢任何以任何方式提供帮助的人。

1 个回复
最合适的回答,由SO网友:gdaniel 整理而成

尝试:$fields = get_field("updates_list"). 然后打印r以查看内部内容。你应该有一个漂亮的数组,里面有所有的转发器字段和值。然后,停止使用have\\u rows和get\\u row,只使用foreach循环。

get_field() 通常用于检索唯一字段,但由于它是一个repeater字段,因此可以获取所有sub\\u字段。只要知道如何从数组中获取值,就不需要acf循环函数。

结束

相关推荐

如何在PHP脚本中获得对$wpdb的引用

我正在使用jQuery标记化自动完成文本条目(http://loopj.com/jquery-tokeninput) 以Wordpress的形式。这种类型的输入调用服务器上的PHP脚本(不是函数)来构建一个选项列表,用户可以在输入框中输入一些文本后从中进行选择(与此页面中输入的标记非常相似)。我的脚本位于我网站的插件目录中。我宣布global $wpdb 但是,当我尝试使用其方法(如$wpdb->prefix)时,得到的结果为空。显然,我的PHP脚本没有加载Wordpress。我尝试添加i