Я использую ACF на своем сайте.
У меня есть поле повторителя с именем «ссылка», и внутри этого поля, подполя с именем и список выбора с 6 значениями.
Я пытаюсь отобразить на странице все строки с выбранным значением выбора «финансы» и обернуть каждые 4 строки в div.
Вот код, который у меня есть, без переноса строк:
<div class="row row_tabs">
<?php if(get_field('reference', 64)):?>
<?php while(has_sub_field('reference', 64)):?>
<?php if(get_sub_field('categorie') == "finance"):?>
<div class="col-xs-3 text-center">
<div class="inside">
<?php $image = get_sub_field('logo'); ?>
<?php if($image):?>
<img data-src="<?php echo $image['sizes']['medium']; ?>" class="lazyload" />
<?php endif; ?>
</div>
</div>
<?php endif; ?>
<?php endwhile; endif; ?>
</div>
и вот что я пробовал до сих пор, но это не работает нормально …
<div class="row row_tabs">
<?php if(get_field('reference', 64)): $counter = 0;?>
<?php while(has_sub_field('reference', 64)):?>
<?php if(get_sub_field('categorie') == "finance"):?>
<div class="col-xs-3 text-center">
<div class="inside">
<?php $image = get_sub_field('logo'); ?>
<?php if($image):?>
<img data-src="<?php echo $image['sizes']['medium']; ?>" class="lazyload" />
<?php endif; ?>
</div>
</div>
<?php if ($counter % 4 == 0) : ?>
</div>
<div class="row row_tabs">
<?php endif; ?>
<?php endif; ?>
<?php endwhile; endif; ?>
</div>
Есть и такое решение, но оно учитывает все поля повторителя, а не метку поля повторителя «финансы».
<?php if ( get_field( 'reference', 64) ): ?>
<?php $index = 1; ?>
<?php $totalNum = count( get_field('reference', 64) ); ?>
<div class="row row_tabs">
<?php while ( has_sub_field( 'reference' ) ): ?>
<div class="col-sm-4">
<?php the_sub_field( 'copy' ); ?>
</div>
<? if ($index % 4 == 0) : ?>
<? if ($index < $totalNum) : ?>
<div class="col-xs-3 text-center">
<div class="inside">
<?php echo $counter ++;?>
<?php $image = get_sub_field('logo'); ?>
<?php if($image):?>
<img data-src="<?php echo $image['sizes']['medium']; ?>" class="lazyload" />
<?php endif; ?>
</div>
</div>
</div>
<div class="row row_tabs">
<? elseif ($index == $totalNum) : ?>
</div>
<? endif; ?>
<? endif; ?>
<?php $index++; ?>
<?php endwhile; ?>
<?php endif; ?>
Мне нужно объединить эти коды, чтобы получить правильный. Подсчитать строки, которые помечены как «финансы», а затем обернуть их в разные делители.
Кто-нибудь может мне помочь с этим?
Задача ещё не решена.
Других решений пока нет …