Как настроить повторитель ACF, чтобы показывать только X элементов в строке - PullRequest
0 голосов
/ 24 октября 2019

Я использую поля повторителя ACF pro, которые отображают отдельные изображения в строке. Однако он показывает все изображения, пока не перейдет к следующей строке:

<div class="client-logo-web-wrapper"><?php $logo_images = get_field( 'logo' ); ?>
<?php if ( $logo_images ) :  ?>
    <?php foreach ( $logo_images as $logo_image ): ?>
        <a href="<?php echo $logo_image['url']; ?>">
            <img src="<?php echo $logo_image['sizes']['thumbnail']; ?>" alt="<?php echo $logo_image['alt']; ?>" />
        </a>
    <p><?php echo $logo_image['caption']; ?></p>
    <?php endforeach; ?>
<?php endif; ?>
<?php if ( have_rows( 'logo_gallery' ) ) : ?>
<?php while ( have_rows( 'logo_gallery' ) ) : the_row(); ?>
    <?php $client_logo = get_sub_field( 'client_logo' ); ?>
        <?php if ( $client_logo ) { ?>
            <div class="client-logo"><img src="<?php echo $client_logo['url']; ?>" alt="<?php echo $client_logo['alt']; ?>" />
            </div>
        <?php } ?>
    <?php endwhile; ?></div>
<?php else : ?>
    <?php // no rows found ?>
<?php endif; ?>

Вместо этого я хотел бы отобразить установленное количество изображений (например, 4) в строке. Спасибо!

1 Ответ

0 голосов
/ 24 октября 2019

Вам нужно определить предел и разорвать цикл, как только вы достигнете этого предела. Кроме того, вы также можете установить максимальное количество элементов в определении поля ACF.

Попробуйте выполнить следующее с установленным пределом:

<?php
$show = 4;
$count = 0;
?>
<?php if ( $logo_images ) :  ?>
    <?php foreach ( $logo_images as $logo_image ): ?>
<?php $count++; ?>
        <a href="<?php echo $logo_image['url']; ?>">
            <img src="<?php echo $logo_image['sizes']['thumbnail']; ?>" alt="<?php echo $logo_image['alt']; ?>" />
        </a>
    <p><?php echo $logo_image['caption']; ?></p>
<?php if ($count > $show) { break; } ?>
    <?php endforeach; ?>
<?php endif; ?>

...