Я использую функцию ACF update_sub_field для добавления содержимого из цикла в дочернее поле повторителя.
Я дошел до того, что данные добавляются в дочерний ретранслятор, но сам перезаписывается. Он обновляет только первую строку дочернего повторителя, поэтому я вижу только последний цикл до конца.
Я повторяю родительский повторитель, используя $counter
, но когда я пытаюсь добавить итерацию к дочернему повторителю, это нарушает функцию. Вот так:
update_sub_field( array($field_key, $counter, $sub_field_key, $rowcount), $value, $post_id );
Я пробовал другую функцию add_sub_row
... которая добавляет правильное количество строк к дочернему повторителю, но не добавляет данные.
Вот мой полный код:
<code>// Product Code Titles
$rows = $html->find('div[class=product-table]', 0)->find('tr');
$field_key = "field_5ae0882f9d6f9";
$sub_field_key = "field_5ae088999d6fb";
if(empty($rows)){
die("Empty array");
}
$titles = array(); // aka your $data
// here we fetch the first row and iterate to get titles
$row = current($rows);
foreach ($row->find('td') as $cell) {
$titles[] = array("column_title" => strip_tags($cell->innertext));
}
update_field( $field_key, $titles, $post_id );
// here we continue iteration starting from second row
$value = array();
$rowcount = 1;
while($row = next($rows)){
$cells = $row->find('td');
$columnsCount = count($cells);
$counter = 1;
foreach ($cells as $cell) {
$value[] = array("text" => strip_tags($cell->innertext));
update_sub_field( array($field_key, $counter, $sub_field_key), $value, $post_id );
echo '<pre>'; print_r($value); echo '
';
$ value = array ();
$ Счетчика ++;
}
$ ROWCOUNT ++;
}
Просто чтобы дать некоторый контекст, я воссоздаю эту таблицу с данными ячейки, помещаемыми в дочернее поле повторителя.