acf repeater foreach
Не могу понять как вывести поля из документации https://www.advancedcustomfields.com/resources/repeater/
<?php
$rows = get_field('repeater_field_name');
if( $rows ) {
echo '<ul class="slides">';
foreach( $rows as $row ) {
$image =
$row['image'];
echo '<li>';
echo wp_get_attachment_image( $image, 'full' );
echo wpautop( $row['caption'] );
echo '</li>';
}
echo '</ul>';
}
Как мне сделать такую структуру через верхний цикл? Не могу разобраться.
<ul class="social">
<li><a href="#"><span class="ico ico-fb"></span>Facebook</a></li>
<li><a href="#"><span class="ico ico-tw"></span>Twitter</a></li>
<li><a href="#"><span class="ico ico-gp"></span>Google+</a></li>
<li><a href="#"><span class="ico ico-pi"></span>Pinterest</a></li>
</ul>
Ответы (1 шт):
Автор решения: Simon
→ Ссылка
Если по приведенному Вами примеру с foreach, то что-то вроде:
<?php
$rows = get_field('repeater_field_name');
if( $rows ) {
echo '<ul class="social">';
foreach( $rows as $row ) {
$link = $row['link'];
$icon = $row['icon'];
$network = $row['network'];
echo '<li>';
echo '<a href="' . esc_url( $link ) . '">';
echo '<span class="ico ico-' . $icon . '"></span>';
echo $network;
echo '</a>';
echo '</li>';
}
echo '</ul>';
}
Но с while будет более читаем и симпатично, как по мне:
<?php if ( have_rows( 'repeater_field_name' ) ) : ?>
<ul class="social">
<?php while( have_rows( 'repeater_field_name' ) ) : the_row(); ?>
<li><a href="<?php echo esc_url( the_sub_field( 'link' ) ); ?>"><span class="ico ico-<?php the_sub_field( 'icon' ); ?>"></span><?php the_sub_field( 'network' ); ?></a></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>