Как получить ID повторителя (repeater) и каждого из его полей (row) в цикле, используя Wordpress ACF (Advanced Custom Fields) в шаблоне?

Как можно получить ID основного повторителя (repeater), а также ID каждого из его полей (row) в цикле, чтобы использовать их в JavaScript?
  • 20 ноября 2023 г. 7:29
Ответы на вопрос 2
Чтобы получить ID повторителя и каждого из его полей в цикле с использованием ACF в Wordpress, вы можете воспользоваться следующим кодом:

1. Получение ID повторителя:

```php
$repeater_id = get_field('repeater_field_name') ?: '';
```

Здесь `'repeater_field_name'` - это имя вашего повторителя, которое вы установили в ACF.

2. Получение ID каждого из полей повторителя в цикле:

```php
if( have_rows('repeater_field_name') ):
    while( have_rows('repeater_field_name') ) : the_row();
        $row_id = get_sub_field_object('field_name')['ID'] ?: '';
    endwhile;
endif;
```

Здесь `'field_name'` - это имя поля в повторителе, для которого вы хотите получить ID.

3. Использование полученных ID в JavaScript:

```javascript
<script>
    var repeaterID = <?php echo json_encode($repeater_id); ?>;
    var rowID = <?php echo json_encode($row_id); ?>;
    // Добавьте ваш код JavaScript здесь, используя полученные переменные repeaterID и rowID
</script>
```

Обратите внимание, что код JavaScript находится внутри тега `<script>` внутри вашего шаблона Wordpress.

Недостатком такого подхода является то, что код JavaScript будет выполняться на сервере при генерации страницы, и переменные будут подставлены в момент запроса к серверу. Если вам нужно получить и использовать эти значения во время работы сценария на клиентской стороне, вам может потребоваться использовать AJAX, чтобы получить значения из сервера.
$my_repeater - это массив, который действует точно так же, как обычный массив. Он содержит значения полей повторителя для определенной страницы, связанной с заданным идентификатором. Например, для доступа к полю "название строки" в третьей строке повторителя можно использовать следующий код:

```php
echo $my_repeater['3']['название строки'];
```

Примечание: 'my_repeater_field' - это поле повторителя, которое связано с конкретной страницей, и 'id страницы к которой он привязан' - это идентификатор страницы, к которой привязан повторитель.
Похожие вопросы